POJ3641-Pseudoprime numbers(快速幂取模)

时间:2022-09-02 07:52:56

题目大意

判断一个数是否是伪素数

题解

赤果果的快速幂取模。。。。

代码:

#include<iostream>
#include<cmath>
using namespace std;
#define LL long long
LL mul_mod(LL a,LL b,int n)
{
return a*b%n;
}
LL pow_mod(LL a,LL p,LL n)
{
if(p==0) return 1;
LL ans=pow_mod(a,p/2,n);
ans=ans*ans%n;
if(p%2==1) ans=ans*a%n;
return ans;
}
bool prime(LL n)
{
if(n<2) return false;
for(int i=2;i*i<n;i++)
if(n%i==0) return false;
return true;
}
int main()
{
int a,p;
while(cin>>p>>a&&p+a)
{
if(a%p==pow_mod(a,p,p))
{
if(!prime(p))
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
else
cout<<"no"<<endl;
}
return 0;
}

POJ3641-Pseudoprime numbers(快速幂取模)的更多相关文章

  1. POJ3641 Pseudoprime numbers&lpar;快速幂&plus;素数判断&rpar;

    POJ3641 Pseudoprime numbers p是Pseudoprime numbers的条件: p是合数,(p^a)%p=a;所以首先要进行素数判断,再快速幂. 此题是大白P122 Car ...

  2. UVa 11582 &lpar;快速幂取模&rpar; Colossal Fibonacci Numbers&excl;

    题意: 斐波那契数列f(0) = 0, f(1) = 1, f(n+2) = f(n+1) + f(n) (n ≥ 0) 输入a.b.n,求f(ab)%n 分析: 构造一个新数列F(i) = f(i) ...

  3. 杭电 2817 A sequence of numbers【快速幂取模】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2817 解题思路:arithmetic or geometric sequences 是等差数列和等比数 ...

  4. hdu 1097 A hard puzzle 快速幂取模

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1097 分析:简单题,快速幂取模, 由于只要求输出最后一位,所以开始就可以直接mod10. /*A ha ...

  5. HDU-2817,同余定理&plus;快速幂取模,水过~

    A sequence of numbers                                                             Time Limit: 2000/1 ...

  6. 【转】C语言快速幂取模算法小结

    (转自:http://www.jb51.net/article/54947.htm) 本文实例汇总了C语言实现的快速幂取模算法,是比较常见的算法.分享给大家供大家参考之用.具体如下: 首先,所谓的快速 ...

  7. HDU 1061 Rightmost Digit --- 快速幂取模

    HDU 1061 题目大意:给定数字n(1<=n<=1,000,000,000),求n^n%10的结果 解题思路:首先n可以很大,直接累积n^n再求模肯定是不可取的, 因为会超出数据范围, ...

  8. 九度OJ 1085 求root&lpar;N&comma; k&rpar; -- 二分求幂及快速幂取模

    题目地址:http://ac.jobdu.com/problem.php?pid=1085 题目描述: N<k时,root(N,k) = N,否则,root(N,k) = root(N',k). ...

  9. HDU--杭电--4506--小明系列故事——师兄帮帮忙--快速幂取模

    小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

随机推荐

  1. SQL Server 内存相关博文

    Don’t confuse error 823 and error 832 本文大意:      错误832:           A page that should have been const ...

  2. iOS通过openURL打开原生应用与页面(包括电话,短信,safari等)

    [[UIApplication sharedApplication] openURL:url];通过给url不同的值,可以实现调用系统自带 电话/短信/邮箱/浏览器/... 1.调用 电话phone[ ...

  3. bzoj 1787 &lbrack;Ahoi2008&rsqb;Meet 紧急集合(1832 &lbrack;AHOI2008&rsqb;聚会)

    1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 1841  Solved: 857[Submit][ ...

  4. MIPI-Layout说明&lpar;转载&rpar;

    转载于:http://www.ccm99.com/thread-3713-1-1.html 前言:随着新的总线协议不断提高信号速率,如今的PCB 设计人员需要充分理解高速布线的要求并控制PCB 走线的 ...

  5. 处理npm publish报错问题

    上传项目到npm-->为社会做贡献 首先你得有一个项目 npm init 生成package.json 来设置相信息 注册登录npm:npm adduser 输入你的一些信息 查看当前npm登录 ...

  6. Flume的概述和安装部署

    一.Flume概述 Flume是一种分布式.可靠且可用的服务,用于有效的收集.聚合和移动大量日志文件数据.Flume具有基于流数据流的简单灵活的框架,具有可靠的可靠性机制和许多故障转移和恢复机制,具有 ...

  7. 学习windows编程 day4 之 多边矩形填充

    #include <windows.h> #include <math.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT message, ...

  8. WDA基础十三:常用模板管理

    常用的模板一般是SMW0和OAOR,根据不同需求来的. WAD有个不好的地方就是不支持GUI上的OLE和DOI,所以需要做转换,下面是常用的方式: FUNCTION ZCRM_DOWNLOAD_TEM ...

  9. 【Go命令教程】14&period; go env

    命令 go env 用于打印 Go 语言的环境信息.其中的一些信息我们在之前已经多次提及,但是却没有进行详细的说明.在本小节,我们会对这些信息进行深入介绍.我们先来看一看 go env 命令情况下都会 ...

  10. PHP-005

    MySql 表列默认时间类型设置:数据类型:timestamp,缺省值:CURRENT_TIMESTAMP