HDOJ 1905 Pseudoprime numbers(模运算)
模运算。。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
Given 2 < p ≤ 1,000,000,000 and 1 < a < p, determine whether or not p is a base-a pseudoprime.
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(模运算)相关推荐
- POJ3641 UVA11287 HDU1905 Pseudoprime numbers【素数判定+快速模幂】
问题链接:POJ3641 UVA11287 HDU1905 Pseudoprime numbers. 问题简述:参见上述链接. 问题分析: 这个问题是验证伪素数问题.p是伪素数的条件是,p不是素数并且 ...
- 【数论基础】模运算详解及其应用
一.基本理论 a%b=a−b∗⌊ab⌋a \% b = a-b*\lfloor\frac{a}{b}\rfloora%b=a−b∗⌊ba⌋ 1.基本概念: 给定一个正整数p,任意一个整数n,一定存在 ...
- 数学、键盘符号和时间复杂度的英语术语及表述方法(编程,标识符,按键,空间复杂度,指数,对数,模运算)
1 Math Symbols数学符号 integral[ˈɪntɪɡrəl] a必须的 theta[ˈθɪtə]n希腊语字母表中第八个字母 factorial[fækˈtɔːriəl]a阶乘的n阶乘 ...
- 找规律/数位DP HDOJ 4722 Good Numbers
题目传送门 1 /* 2 找规律/数位DP:我做的时候差一点做出来了,只是不知道最后的 is_one () 3 http://www.cnblogs.com/crazyapple/p/3315436. ...
- java个人学习笔记:取模运算 整数除运算 +运算
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数则不可忽略.此外,取模运算的结果不一定总是整数. 对于除号"/",它的整数除和小数除是有区别的:整数之间做除 ...
- 浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)
自己在Dev里验证了,浮点数取模时有编译错误,通不过. 如:[Error] invalid operands of types 'double' and 'int' to binary 'operat ...
- c语言x的2取模_c语言如何取模运算
展开全部 取模运算符是% ,对负数32313133353236313431303231363533e4b893e5b19e31333366306438取模不一定都是正数. 例如: 例一:int mai ...
- 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...
- Java % (取模)运算
取模怎么算 取模运算实际上是计算两数相除以后的余数.假设 q 是 a.b 相除产生的商(quotient),r 是相应的余数(remainder),那么在几乎所有的计算系统中,都满足: a = ...
最新文章
- .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB
- mysql 压缩表_MySQL InnoDB 表压缩(行格式压缩)
- Elastic-Job中的DataFlowJob
- cannot resolve symbol ‘log‘问题解决
- 修改MYSQL 密码
- rocketmq怎么保证数据不会重复_RocketMQ保证信息有序性和防止重复
- java 正则首位8或者9的8位数字_正则简单手机号和邮箱练习
- BZOJ2976 : [Poi2002]出圈游戏
- css使图片变成黑白效果 - 代码篇
- php结束外部程序,PHP执行外部程序的方法
- 怎么将文字转换成语音?
- git为私有仓库设置密码_Jenkins与Git最佳实践-1
- 系统运行后修改linux系统时区
- 解决 大漠测试工具 “你的系统没有发现大漠插件”问题
- 用Python筛选国考职位表
- opencv cv::Mat::convertTo()函数
- Vue PC端分辨率自适应
- cntv.cn今日“开锅” USB3.0初露端倪(每日关注2009.12.28)
- 详解机器学习/深度学习中的梯度消失/梯度爆炸的原因/解决方案
- 稳定好用的短连接生成平台,支持API批量生成
热门文章
- 360全景html插件,jquery实现360度全景展示特效插件
- 在OpenCV中利用卷积进行图像滤波
- 2021年的疫情下的智能车竞赛
- 无线充电系统在输出部分采用LCC拓扑结构综述研究
- 天高任鸟飞,海阔凭鱼跃
- 飞机为什么能飞起来?直到今天,科学家仍然没有答案
- python课程设计总结1000-编程小白学习python总结文章(一)
- wxpython输入框_基于wxPython的GUI实现输入对话框(1)
- python label怎么用_python tkinter label标签怎么使用?
- keil复制代码乱码_win7系统下Keil复制中文注释到记事本出现乱码的解决方法