用简单循环解决的素数问题
2020-02-03 02:50
190 查看
-
素数探求
试商法
//用2~sqrt(x)之间的整数去试商 int IsPrime(int x) { int i,squareroot; if(x==1) return 0; squareroot=(int)sqrt(x); int i; for(i=2;i<=squareroot;i++) { if(x%i==0) return 0; } return 1; }
-
判断完数
试商法
int IsPnumber(int x) { int i,sum=0; for(i=1;i<=(x/2);i++) { if(x&i==0) sum+=i; } return x==sum?1:0; } //优化速度 int IsPnumber(int x) { int i,sum=0; int k=(int)sqrt(x); for(i=1;i<=k;i++) { if(x&i==0) { sum=sum+i+x/i; } } return x==sum?1:0; }
-
验证歌德巴赫猜想
任何一个大于等于6的偶数总能表示为两个素数之和
试商法
函数不能嵌套定义,但可以嵌套调用
引用标志变量flag 标记解是否找到的状态 一般情况下flag为0或1 flag注意要进行初始化
-
回文素数
-
从10试到n-1
- 分离个位,十位,百位
- 若(t==m)&& IsPrime(m)则为回文素数
- 2位与3位运算不同
-
孪生素数 相差为2的两个素数
IsPrime(i) && IsPrime(i+2)
加速:若min为偶数,则min++,宁且i+=2;(测试所有奇数)
-
使用front记录前一个素数
-
梅森素数
注意:pow()函数返回值为double,且调用较慢
最好自己写一个乘方函数
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 简单的循环判断解决约瑟夫环问题
- python中的while循环解决简单的数学问题
- OpenCV 图片简单合成 and 解决C++多层循环跳出问题
- Iframe自适应页面高度问题的最简单最适用的解决办法
- 程序陷入死循环问题的解决
- LINQ TO SQL学习笔记(3)_解决通用基类的循环引用问题
- 简单问题,解决了也开心
- 图片左右循环连续滚动代码,解决marquee的留白问题
- 寻求一种尽可能简单处理方式来解决复杂问题
- C#单向循环列表 解决 约瑟夫问题
- 学习.NET遇到的第一个问题。原来解决这么简单
- 解决下载文件名乱码问题的简单方法
- 循环双向链表 及 约瑟夫问题的解决
- 白苹果问题解决办法以及原因简单分析
- 循环优先级队列解决客户优先级服务问题
- 使用 StateServer 保存 Session 解决 Session过期,登陆过期问题,最简单的方法。
- 如果是能简单解决的问题,就不用想得太复杂了
- STRUTS乱码问题解决的最简单方法
- 今天在国外论坛上为别人解决一个简单问题
- Struts分页问题之简单解决