C++编程验证费马小定律
:如果p是素数,而a不是p的倍数,则a的p-1次方除以p的余数恒为1
看到后在想怎么能验证所有的数字,然后编了个验证输入的a和p是否符合,最后好像就是要编成那样。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{int a,p;int zhi=true;cout<<"Please input a and p."<<endl;cin>>a>>p;for(int i=2;i<=p/2;i++){if(p%i==0){zhi=false;break;}}if(zhi==true){int yv;if(a%p!=0){int z=pow(a,(p-1));yv=z%p;cout<<"The remainder is "<<yv;}elsecout<<"a is a multiple of p.";}elsecout<<"p is not prime number.";return 0;
}
这里我默认了a比p大,因为前面也说了a不是p的倍数
上面代码中使用了pow计算整形数的次方不应该,懒得 改了。
这次用了函数,感觉好像好点了
#include<iostream>
using namespace std;
int shu(int a)
{int shu=0;for(int i=1;i<=a;i++){if(a%i!=0){shu++;}}return shu;
}int zxpow(int a,int b)
{int sum=1;for(int i=1;i<=b;i++){sum*=a;}return sum;}int main()
{int a,n,fn,yv;bool zhi=false;cin>>a>>n;fn=shu(n);if(n<=a&a%n!=0){yv=zxpow(a,fn)%n;zhi=true;}else if(n>a&n%a!=0){yv=zxpow(a,fn)%n;zhi=true;}if(zhi==true){cout<<"The remainder is "<<yv<<".";}elsecout<<"a and n are not mutually prime";return 0;}
记得还有更简单的来着,找不到了。
我这老拉跨了。
应该还能改改,下次一定。
C++编程验证费马小定律相关推荐
- 费马小定理与欧拉定理
费马小定理 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p) 欧拉定理 gcd(a,n)=1,则 a^≡1(mod p) 其中,是欧拉函数 欧拉定理证明 模m的同余类共有m ...
- [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT
Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...
- 费尔马小定理素数java_费马小定理,我的理解
原标题:费马小定理,我的理解 触碰标题下面一行的"邵勇老师"查看所有文章:触碰"数学教学研究", 关注本微信公众号(sx100sy). 本公众号内容均由邵勇本人 ...
- 判断素数问题(费马小定理,蒙哥马利模幂)
题目描述 给定多个大于 1 的整数,判断是否为素数 输入 输入多行,每行是一个大于 1 的整数或字母 q 输出 对于每一行输入: 如果该行是正整数,那么输出一行,输出内容为 T 或 F,代表这个正整数 ...
- 费马小定理 素性判断 蒙哥马利算法
转载于http://blog.csdn.net/arvonzhang/article/details/8564836 1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所 ...
- 费马小定理 素数判定 蒙哥马利算法
转自:http://www.cnblogs.com/Knuth/archive/2009/09/04/1559949.html 约定: x%y为x取模y,即x除以y所得的余数,当x<y时,x%y ...
- 卢卡斯定理 费马小定理
Lucas定理是用来求 c(n,m) mod p的值,p是素数(从n取m组合,模上p) 描述为: Lucas(n,m,p)=combine(n%p,m%p)* Lucas(n/p,m/p,p) Luc ...
- 初等数论四大定理之——费马小定理
皮埃尔·德·费马(Pierre de Fermat),1601年生于法国,是一个律师和业余数学家.他在数学多个分支上都有贡献,成就甚至超过了许多职业的数学家,被誉为"业余数学家之王" ...
- 7. 数论四大定理(威尔逊定理、欧拉定理、费马小定理、孙子定理)
一.准备工作 点击查看数论基础知识 二.威尔逊定理 威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大. 1. 定理及其变形 当且仅当p为素 ...
最新文章
- SQL存储过程实现分页查询
- boost::static_pointer_cast相关的测试程序
- UPC2018组队训练赛第六场
- 树莓派:3安装NodeJS
- 微软将中止支持 .NET Core 2.2,建议开发者升级至 .NET Core 3.1
- P5437-[XR-2]约定【拉格朗日差值,数学期望】
- MySQL SHELL 缓存历史命令
- C# USB视频人脸检测
- Java J2EE中的依赖查找
- MyEclipse问题收集
- php起点小说小偷程序,PHP 简单的小偷程序
- Linux内核启动工作流程初探
- 使用bat脚本上传文件到Linux服务器
- 小程序如何获取后端的数据
- Android 动态分区详解(六) 动态分区的底层机制
- 阿里云国际版账户登录不上,有什么办法解决吗?
- 猫和路由器和交换机有什么区别
- cocosbuilder详细使用教程
- 【提高知识水平|Audition】day-2
- 电路基础6-(2)一阶电路