1 solutions
-
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
Information
- ID
- 18730
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- (None)
- # Submissions
- 0
- Accepted
- 0
- Uploaded By