题目
判断一个数是不是为伪素数。能够通过费马测试的合数。
分析
数论,直接按照定义判断即可。
说明
学python,ヾ(◍°∇°◍)ノ゙
import math
def is_prime(x):
for i in range(2, int(math.sqrt(x))+2):
if x % i == 0:
return False
return True
def pow_mod(a, n, m):
if n == 1:
return a % m
b = pow_mod(a, int(n/2), m)
if n % 2 == 1:
return (b * b % m) * a % m
return b * b % m
while True:
p, a = map(int, input().split(" "))
if p == 0 and a == 0:
break
if is_prime(p) or pow_mod(a, p, p) != a % p:
print("no")
else:
print("yes")