POJ 3641 快速幂+素数判断
来源:互联网 发布:淘宝客如何设置返利 编辑:程序博客网 时间:2024/05/20 18:48
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 byp, 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
题目大意(百度):给定两个数, p ,a ; 如果p是素数,输出n;
否则判断 a^p%p是否等于a ,是输出yes; 否则输出no;
除了当时题意看不懂 这个题做起来没有任何困难。。。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#define ll long long #define inf 1000000007using namespace std ;ll quick(ll a , ll b , ll mod){ll res = 1 ;a = a % mod ; while(b){if(b%2) res = res * a % mod ;b /= 2 ; a = a * a % mod ;}return res ; }ll prime(ll a ){if(a==1||a==0) return false ;for(int i = 2 ; i<=sqrt(a) ;i++){if(a%i==0) return false ;}return true ;}int main(){ll p , a ; while(cin>>p>>a , a + p){ll judge ;if(prime(p)){ printf("no\n"); continue;}else {judge = quick(a, p,p);if(judge==a) {printf("yes\n");continue ;}else {printf("no\n");continue;}}}return 0 ;}
- POJ 3641 快速幂+素数判断
- poj 3641 快速幂+米勒罗宾判断大素数
- POJ 3641 -- 快速幂运算,素数判定
- POJ 3641 Pseudoprime numbers(快速幂+素数)
- POJ 3641 Pseudoprime numbers【素数+快速幂】
- POJ Pseudoprime numbers (判断素数+快速幂取模)
- POJ 3641 Pseudoprime numbers (伪素数_快速幂)
- poj 3641 Pseudoprime numbers 快速幂+素数判定 模板题
- POJ - 3641 Pseudoprime numbers <快速幂加素数判定>
- 【POJ】-3641-Pseudoprime numbers(快速幂,大数素数判定)
- POJ 3641 Pseudoprime numbers(快速幂,素数)
- (快速幂加素数判断)
- UVA 10006(素数判断+快速幂)
- kmp.gcd.快速幂.判断素数模板
- 快速判断素数算法
- 快速判断素数
- NYOJ187快速判断素数
- 快速判断素数
- 开篇手记
- 矩阵旋转90°的两种方法-java
- ListView的setOnScrollListener
- 日志
- C语言通讯录(初级版)
- POJ 3641 快速幂+素数判断
- django使用静态文件
- LeetCode 015 3Sum
- 去掉url 后面的jsessionid
- 蓝桥杯 五角填数 2015年JavaB组决赛试题
- MySQL(1) -- 必备知识(1)
- android4.0 FragmentTabHost tabs在底部 仿qq界面
- JSON与XML的区别比较
- C++ 抽象类