POJ 3641
来源:互联网 发布:淘宝违规处罚 编辑:程序博客网 时间:2024/06/13 12:24
Description
Fermat's theorem states that for any prime number p and for any integer a > 1, ap = a (mod p). That is, if we raise a to the pth power and divide by p, the remainder is a. Some (but not very many) non-prime values of p, known as base-a pseudoprimes, have this property for some a. (And some, known as Carmichael Numbers, are base-a pseudoprimes for all a.)
Given 2 < p ≤ 1000000000 and 1 < a < p, determine whether or not p is a base-a pseudoprime.
Input
Input contains several test cases followed by a line containing "0 0". Each test case consists of a line containing p and a.
Output
For each test case, output "yes" if p is a base-a pseudoprime; otherwise output "no".
Sample Input
3 210 3341 2341 31105 21105 30 0
Sample Output
nonoyesnoyesyes
#include <iostream>#include <stdio.h>#include <string>#include <cstring>#include <algorithm>#include <cmath>#define N 1000009#define ll __int64using namespace std;ll vis[N];ll fun(ll a){ for(ll i=2;i*i<=a;i++) { if(a%i==0) return 1; } return 0;}ll pow_mod(ll m,ll n){ ll b=1; ll mod=n; while(n) { if(n&1) b=(b*m)%mod; n=n>>1; m=m*m%mod; } return b;}int main(){ ll p,a; while(~scanf("%I64d %I64d",&p,&a)) { if(a+p==0) break; if(fun(p)==0) { cout<<"no"<<endl; continue; } ll ans=pow_mod(a,p); //cout<<"ans="<<ans<<endl; if(ans==a) cout<<"yes"<<endl; else cout<<"no"<<endl; } return 0;}
- poj-3641
- POJ 3641
- 【POJ】3641
- poj 3641解题报告
- POJ-3641-Pseudoprime numbers
- POJ 3641-Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- Miller_Rabin算法 (poj 3641)
- POJ 3641 Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- POJ-3641 Pseudoprime numbers
- POJ 3641 Pseudoprime numbers
- 【POJ 3641】Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- POJ-3641 Pseudoprime numbers
- Pseudoprime numbers POJ 3641
- POJ-----3641快速幂
- HDU ACM 1207 汉诺塔II
- Activity中finish()和onDestroy()的区别
- 【TCP/IP】IP:网际协议(寻址和路由)
- strstr函数
- 《unix网络编程》(2)网络模型和协议概述
- POJ 3641
- Strtol()详解
- mysql 导入时错误 #1062 –Duplicate entry '1' for key 'PRIMARY'
- hdu 1113 Word Amalgamation 字符串处理 ,加上哈希 ,水题~
- 复杂Oracle查询 限定查询+多表查询+统计查询+子查询
- NFS错误Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno=Connection refused
- select、poll、epoll之间的区别总结[整理]
- 读取菜单键home键返回键的背光节点,控制其闪烁
- BZOJ 3265 志愿者招募加强版 单纯形