1 条题解
-
0
C++ :
#include <stdio.h> int isprime(long long p) { long long i; for(i = 2; i*i <= p; i++) { if(p%i == 0) return 0; } return 1; } main() { while(1) { long long p, a, ap, pp, aa; scanf("%lld %lld", &p, &a); if(p == 0) break; if(isprime(p)) { puts("no"); continue; } ap = 1; pp = p; aa = a; while(pp) { if(pp&1) ap*= aa; ap %= p; aa = (aa*aa)%p; pp >>= 1; } //printf("%lld %lld\n", ap%p, a); if(ap%p == a) puts("yes"); else puts("no"); } }
- 1
信息
- ID
- 3640
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者