POJ-3641 Pseudoprime numbers
来源:互联网 发布:天庭淘宝城红白txt下载 编辑:程序博客网 时间:2024/04/29 23:02
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
Source
Waterloo Local Contest, 2007.9.23
#include<stdio.h> #include<string.h> bool sushu(long long n) { long long i; for(i=2;i*i<n;++i) { if(n%i==0) return false; } return true; } long long quictpow(long long n,long long m) { long long ans=1,cnt=m; while(cnt>0) { if(cnt&1) ans=(ans*n)%m; n=(n*n)%m; cnt=cnt/2; } return ans; } int main() { long long p,a; while(scanf("%lld%lld",&p,&a)&&p||a) { if(sushu(p)) printf("no\n"); else if(a==quictpow(a,p)) printf("yes\n"); else if(a!=quictpow(a,p)) printf("no\n"); } return 0; }
- 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
- POJ 3641 Pseudoprime numbers
- 【POJ 3641】Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- POJ-3641 Pseudoprime numbers
- Pseudoprime numbers 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 2001 Shortest Prefixes 数据结构Trie树(字典树、前缀树)
- UITableView在style为plain时,实现sectionHeader跟随cell移动
- Java 8 新特性之 Lambda表达式
- Android学习笔记——触摸事件分发
- 网站优化之如何用原生javascript去完成懒加载技术--lazyload
- POJ-3641 Pseudoprime numbers
- HDU 1052 Tian Ji -- The Horse Racing
- android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】
- Summer day 12
- leetcode_c++:栈:Verify Preorder Serialization of a Binary Tree(331 )
- 初探Python(2)
- 线性表——顺序表
- Big Number(大数取余)
- JAVA 内存分配理解