Question: https://codility.com/demo/take-sample-test/count_factors

Question Name: Count-Factors or CountFactors

1 2 3 4 5 6 7 8 9 10 11 12 13 |
def solution(N): candidate = 1 result = 0 while candidate * candidate < N: # N has two factors: candidate and N // candidate if N % candidate == 0: result += 2 candidate += 1 # If N is square of some value. if candidate * candidate == N: result += 1 return result |

Hi Sheng! Thanks for share your solutions!

In this one, I disagree, cause if N=1 the result should be 1 and in this solution return 0.

Just that!

I agree with your conclusion “if N=1 the result should be 1”, but disagree with “this solution return 0”. Actually this solution will return 1, if the input is 1. Please refer to the line #11.

When I run the C# version of your solution through Codility it fails timing on the last LARGE Number test case. As a result I modified it so that the multiplication isn`t performed for each loop in the while.

Nice improvement! Thanks!

Java solution

Thanks for sharing!

C# Solution – 100%