我想获得欧几里得汤,但是当我在ggt(x,z1)
中调用totient()
时,它将返回None
。
知道是什么问题吗?
ggt
是否应该将值返回给totitent()
?
#!/usr/bin/python3
def ggt(a, b):
if a > b:
while b!=0:
c = a % b
a = b
b = c
return a
else:
ggt(b,a)
def totient():
while True:
try:
z1 = int(input('insert number '))
break
except:
print("Not a integer!")
continue
counter = 1
for x in range(2,z1):
cache = ggt(x,z1)
if (cache == 1): # <-- this returns None
counter += 1
print("phi(%d)" % (counter))
totient()