def phi(n):
if n <= 1:
return n
for i in range(2, n + 1):
if n % i == 0:
ans = 1
while n % i == 0:
n //= i
ans *= i
ans //= i
ans *= i - 1
return ans * phi(n)
def common(x, y):
if x > y:
x, y = y, x
i = 2
ans = 1
while i <= x:
while x % i == 0 and y % i == 0:
x //= i
y //= i
ans *= i
i += 1
return ans
def check(i, n):
for j in range(1, phi(n)):
if pow(i, j, n) == 1:
return False
return True
n = 67108934
total = 0
for i in range(n):
if pow(i, phi(n), n) == 1 and common(i, n) == 1 and check(i, n):
print(i)
total += i
print ("Flag is cnss{%d}" % (total))
能输出flag就好 本来就是一道翻译题
目前是用原根乱搞搞出来了答案 但是搞不懂原理 先开坑在此