# count divisors problem in python using while

i try to count divisor if number have 4 divisors will print “elegant number” else “not elegant number” but i have trouble while print it i have finished to show divisors from number but my program can’t show elegant number or not. i have your opinion to fixed it. here my code:

```N = int(input("enter number: "))
i = 1
factor = 0 # this for count divisors but doesn't right
while (i <= N):
if(N%i==0):
print(i)
factor+=i # this for count divisors but doesn't right
i+=1
if(factor==4):
print("elegant number")
else:
print("not elegant number")
```

i have put comment in line which line for count divisors.

I think the main issue inside the code was adding `factor += i` instead of `factor += 1` (to account for a new divisor). Also, the placement of the `factor += 1` condition had to be inside the `if-statement`.

Here is an updated version of the code:

```N       = int(input("enter number: "))
factors = 0

for i in range(1,N+1): # Add N+1 to loop over "i=N" as well
if N%i == 0:
print(i)
factors += 1

if factors == 4 :
print("elegant number")
else:
print("not elegant number")
```

Please let me know in the comments section if you need further help. Cheers,

PS. Alternative version using a `while-loop`:

```N       = int(input("enter number: "))
factors = 0

i = 1
while i<=N:
if N%i == 0:
print(i)
factors += 1
i += 1

if factors == 4 :
print("elegant number")
else:
print("not elegant number")
```