博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3641:Pseudoprime numbers
阅读量:5060 次
发布时间:2019-06-12

本文共 1437 字,大约阅读时间需要 4 分钟。

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 2
10 3
341 2
341 3
1105 2
1105 3
0 0

Sample Output

no
no
yes
no
yes
yes


题意:不是素数的数p,且a^p对p取模等于a,输出yes,其他的输出no。

直接暴力,不要打表,打表数组开不到1e9,暴力不会超时

#include
#include
#define ll long longll Pow(ll a,ll b){ ll res=1; ll c=b; while(b>0) { if(b&1) res=res*a%c; a=a*a%c; b>>=1; } return res;}ll su(ll n){ for(ll i=2;i*i<=n;i++) { if(n%i==0) return 0; } return 1; }int main(){ ll p,a,flag=0; while(~scanf("%lld%lld",&p,&a)) { if(a==0&&p==0) break; if(su(p)==0) flag+=1; if(flag!=0&&Pow(a,p)==a) printf("yes\n"); else printf("no\n"); flag=0; } return 0;}

转载于:https://www.cnblogs.com/Friends-A/p/9309070.html

你可能感兴趣的文章
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
bzoj1230 开关灯 线段树
查看>>
LinearLayout
查看>>
学习python:day1
查看>>
css3动画属性
查看>>
第九次团队作业-测试报告与用户使用手册
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
返回代码hdu 2054 A==B?
查看>>