unsigned factor_count( unsigned n ) __override { assert( n > 0 ); unsigned count = 0; unsigned d = 2; while ( n > 1 ) { if ( n % d ) ++ d; else { n /= d; ++ count; } } return count; }