:如果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++编程验证费马小定律相关推荐

  1. 费马小定理与欧拉定理

    费马小定理 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p) 欧拉定理 gcd(a,n)=1,则 a^≡1(mod p) 其中,是欧拉函数 欧拉定理证明 模m的同余类共有m ...

  2. [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

  3. 费尔马小定理素数java_费马小定理,我的理解

    原标题:费马小定理,我的理解 触碰标题下面一行的"邵勇老师"查看所有文章:触碰"数学教学研究", 关注本微信公众号(sx100sy). 本公众号内容均由邵勇本人 ...

  4. 判断素数问题(费马小定理,蒙哥马利模幂)

    题目描述 给定多个大于 1 的整数,判断是否为素数 输入 输入多行,每行是一个大于 1 的整数或字母 q 输出 对于每一行输入: 如果该行是正整数,那么输出一行,输出内容为 T 或 F,代表这个正整数 ...

  5. 费马小定理 素性判断 蒙哥马利算法

    转载于http://blog.csdn.net/arvonzhang/article/details/8564836 1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所 ...

  6. 费马小定理 素数判定 蒙哥马利算法

    转自:http://www.cnblogs.com/Knuth/archive/2009/09/04/1559949.html 约定: x%y为x取模y,即x除以y所得的余数,当x<y时,x%y ...

  7. 卢卡斯定理 费马小定理

    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 ...

  8. 初等数论四大定理之——费马小定理

    皮埃尔·德·费马(Pierre de Fermat),1601年生于法国,是一个律师和业余数学家.他在数学多个分支上都有贡献,成就甚至超过了许多职业的数学家,被誉为"业余数学家之王" ...

  9. 7. 数论四大定理(威尔逊定理、欧拉定理、费马小定理、孙子定理)

    一.准备工作 点击查看数论基础知识 二.威尔逊定理 威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大. 1. 定理及其变形 当且仅当p为素 ...

最新文章

  1. SQL存储过程实现分页查询
  2. boost::static_pointer_cast相关的测试程序
  3. UPC2018组队训练赛第六场
  4. 树莓派:3安装NodeJS
  5. 微软将中止支持 .NET Core 2.2,建议开发者升级至 .NET Core 3.1
  6. P5437-[XR-2]约定【拉格朗日差值,数学期望】
  7. MySQL SHELL 缓存历史命令
  8. C# USB视频人脸检测
  9. Java J2EE中的依赖查找
  10. MyEclipse问题收集
  11. php起点小说小偷程序,PHP 简单的小偷程序
  12. Linux内核启动工作流程初探
  13. 使用bat脚本上传文件到Linux服务器
  14. 小程序如何获取后端的数据
  15. Android 动态分区详解(六) 动态分区的底层机制
  16. 阿里云国际版账户登录不上,有什么办法解决吗?
  17. 猫和路由器和交换机有什么区别
  18. cocosbuilder详细使用教程
  19. 【提高知识水平|Audition】day-2
  20. 电路基础6-(2)一阶电路

热门文章

  1. unity 代码拷贝材质球
  2. qq邮箱imtp收件服务器,qq邮箱代收outlook
  3. Excel如何将多行数据合并为一行并添加间隔符号
  4. 苹果Mac电脑开机启动时的声音如何关闭?
  5. 23、Numpy IO
  6. CRM系统部署模式有哪些
  7. RGB值转换HSV的值
  8. Zuul1与Spring Cloud Gateway的区别
  9. 全面理解Gradle - 定义Task
  10. TWEN-ASR ONE 语音识别系列教程(1)--- 运行第一个程序