模运算。。http://www.cnblogs.com/jojoke/articles/1003594.html

Pseudoprime numbers

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 876    Accepted Submission(s): 358

Problem Description
Fermat's theorem states that for any prime number p and for any integer a > 1, a^p == 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 ≤ 1,000,000,000 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
View Code

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 __int64 sushu(__int64 a)
 5 {
 6     __int64 i;
 7     if(a%2 == 0)
 8     return 0;
 9     for(i = 3; i < sqrt(a); i+=2)
10     {
11         if(a%i == 0)
12         return 0;
13     }
14     return 1;
15 }
16 __int64 ab(__int64 a, __int64 p, __int64 x)//模运算公式
17 {
18     __int64 s;
19     if(p==0)
20     return 1;
21     if(p==1)
22     return a%x;
23     if(p == 2)
24     return (a*a)%x;
25     s=ab(a,p/2,x);
26     if(p%2 == 0)
27     return (s*s)%x;
28     else
29     return (((s*s)%x)*a)%x;
30
31 }
32 int main()
33 {
34     __int64 p, a, x;
35     while(scanf("%I64d %I64d",&p,&a) != EOF)
36     {
37         if(p==0&&a==0)break;
38         if(sushu(p)==1)
39         printf("no\n");
40         else
41         {
42             x = ab(a,p,p);
43             if(x==a)
44             printf("yes\n");
45             else
46             printf("no\n");
47         }
48     }
49     return 0;
50 }

转载于:https://www.cnblogs.com/wanglin2011/archive/2012/07/28/2613550.html

HDOJ 1905 Pseudoprime numbers(模运算)相关推荐

  1. POJ3641 UVA11287 HDU1905 Pseudoprime numbers【素数判定+快速模幂】

    问题链接:POJ3641 UVA11287 HDU1905 Pseudoprime numbers. 问题简述:参见上述链接. 问题分析: 这个问题是验证伪素数问题.p是伪素数的条件是,p不是素数并且 ...

  2. 【数论基础】模运算详解及其应用

    一.基本理论 a%b=a−b∗⌊ab⌋a \% b = a-b*\lfloor\frac{a}{b}\rfloora%b=a−b∗⌊ba​⌋ 1.基本概念: 给定一个正整数p,任意一个整数n,一定存在 ...

  3. 数学、键盘符号和时间复杂度的英语术语及表述方法(编程,标识符,按键,空间复杂度,指数,对数,模运算)

    1 Math Symbols数学符号 integral[ˈɪntɪɡrəl] a必须的 theta[ˈθɪtə]n希腊语字母表中第八个字母 factorial[fækˈtɔːriəl]a阶乘的n阶乘 ...

  4. 找规律/数位DP HDOJ 4722 Good Numbers

    题目传送门 1 /* 2 找规律/数位DP:我做的时候差一点做出来了,只是不知道最后的 is_one () 3 http://www.cnblogs.com/crazyapple/p/3315436. ...

  5. java个人学习笔记:取模运算 整数除运算 +运算

    如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数则不可忽略.此外,取模运算的结果不一定总是整数. 对于除号"/",它的整数除和小数除是有区别的:整数之间做除 ...

  6. 浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)

    自己在Dev里验证了,浮点数取模时有编译错误,通不过. 如:[Error] invalid operands of types 'double' and 'int' to binary 'operat ...

  7. c语言x的2取模_c语言如何取模运算

    展开全部 取模运算符是% ,对负数32313133353236313431303231363533e4b893e5b19e31333366306438取模不一定都是正数. 例如: 例一:int mai ...

  8. 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)

    测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...

  9. Java % (取模)运算

    取模怎么算     取模运算实际上是计算两数相除以后的余数.假设 q 是 a.b 相除产生的商(quotient),r 是相应的余数(remainder),那么在几乎所有的计算系统中,都满足: a = ...

最新文章

  1. .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB
  2. mysql 压缩表_MySQL InnoDB 表压缩(行格式压缩)
  3. Elastic-Job中的DataFlowJob
  4. cannot resolve symbol ‘log‘问题解决
  5. 修改MYSQL 密码
  6. rocketmq怎么保证数据不会重复_RocketMQ保证信息有序性和防止重复
  7. java 正则首位8或者9的8位数字_正则简单手机号和邮箱练习
  8. BZOJ2976 : [Poi2002]出圈游戏
  9. css使图片变成黑白效果 - 代码篇
  10. php结束外部程序,PHP执行外部程序的方法
  11. 怎么将文字转换成语音?
  12. git为私有仓库设置密码_Jenkins与Git最佳实践-1
  13. 系统运行后修改linux系统时区
  14. 解决 大漠测试工具 “你的系统没有发现大漠插件”问题
  15. 用Python筛选国考职位表
  16. opencv cv::Mat::convertTo()函数
  17. Vue PC端分辨率自适应
  18. cntv.cn今日“开锅” USB3.0初露端倪(每日关注2009.12.28)
  19. 详解机器学习/深度学习中的梯度消失/梯度爆炸的原因/解决方案
  20. 稳定好用的短连接生成平台,支持API批量生成

热门文章

  1. 360全景html插件,jquery实现360度全景展示特效插件
  2. 在OpenCV中利用卷积进行图像滤波
  3. 2021年的疫情下的智能车竞赛
  4. 无线充电系统在输出部分采用LCC拓扑结构综述研究
  5. 天高任鸟飞,海阔凭鱼跃
  6. 飞机为什么能飞起来?直到今天,科学家仍然没有答案
  7. python课程设计总结1000-编程小白学习python总结文章(一)
  8. wxpython输入框_基于wxPython的GUI实现输入对话框(1)
  9. python label怎么用_python tkinter label标签怎么使用?
  10. keil复制代码乱码_win7系统下Keil复制中文注释到记事本出现乱码的解决方法