求判断一个正整数是否是素数的算法!
比较高效的算法是智能学习机制:
建立一个存储(可以使用链表),可以先存储上一系列的素数列表
试商的时候,可以从2开始,只试素数
并且,每次判断为素数的数,都按照从小到大的排列顺序,增加到我们建立的素数列表中
这样,我们的这个程序就会越算越快.求素数怎样优化算法
1.如果要找出这个范围内的所有素数,可以使用筛选法,把不是素数的筛掉
从小到大,如果p是素数,则筛去p*p,p*(p+1),.....
2.如果只是做判断,就用Miller-Rabin测试,基于费马小定理,对于正整数n,如果存在正整数a,满足a^(n-1)=1(mod n),(=应为三行的同余)
则n为基于a的伪素数,也就基本上是素数拉,只要对随机的多个a进行测试,如果都成立,就可以认为n是素数拉.怎么求素数?最简单的方法。谢谢,用C编程。谢谢
int Su(num)
{
int i,j,k=0,a[100];
for(i=2;i<=num;i++)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0)
break;
}
if(j>i/2)
{
a[k]=i;
k++;
}
}
for(i=0;i<k;i++)
{
printf("%d ",a[i]);
}
return 0;
}
程序作用是判断1到num有多少个素数,保存到数组a中。
顺序输出3到100之间所有素数的算法
#include <stdio.h>
#include <math.h>
int IsPrime(int n)
{
int i;
if(n<2)
return 0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}
void main()
{
int n;
printf("输入1个整数:");
scanf("%d",&n);
if(IsPrime(n))
printf("此数是");
else
printf("不是");
}c语言求素数的算法
根据素数的性质,代码设计如下:
设计一:判断n是否能被1~n-1整除,不能整除为素数
#include<stdio.h>
int main()
{
int i, n;
scanf("%d", &n);
for (i = 2; i < n ; i++)
{
if (n%i == 0)
break;
}
if (i < n) printf("This is not a prime.");
else printf("This is a prime.");
return 0;
}
设计二:判断n是否能被2~√n间的整数整除,不能整除为素数
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double k;
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++)
{
if (n%i == 0) break;
}
if (i <=k) printf("This is not a prime.");
else printf("This is a prime");
return 0;
}
扩展资料:
1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)
2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。
由此可以得到一个法2较快的素数判断算法?
参考资料:搜狗百科-scanf
参考资料:搜狗百科-质数有能写出所有素数的公式吗
有的,上面的没表达清楚。
在公式A=(n-1)*(||B2-1|-(B2-1)|)/2+2, 其中B=m(n+1)-(n!+1)中,m,n以自然数代入,所得的结果一定是素数。
这就是自欧几里德在<<几何原本>>证明了素数是无限多个后,多少世纪以来人们一直所寻找的能写出所有素数的公式!
不难看出,A一定是整数,且有: 若B=0,有A=n+1; 若B≠0, 有A=2.
B≠0时,A已为素数,当B=0, 即m(n+1)-(n!+1)=0, 即m=(n!+1)/(n+1).在初等数论中有一著名的定理叫做"威尔逊定理", 可陈述为(n!+1)/(n+1)为整数的充要条件是n+1是素数。
所以B=0时,m=(n!+1)/(n+1)为整数,故A=n+1必为素数。
LZ喜欢数论吗?我对这个比较喜欢。
刚从硬盘里翻出来的,呵呵~
优惠码50SSDOFF 首月5折50WHTSSD 年付5折15OFF 85折优惠,可循环使用荷兰VPSCPU内存SSD带宽IPv4价格购买1核1G50G1Gbps/3TB1个$ 9.10/月链接2核2G80G1Gbps/5TB1个$ 12.70/月链接2核3G100G1Gbps/7TB1个$ 16.30/月链接3核4G150G1Gbps/10TB1个$ 18.10/月链接阿联酋VPSCPU内存SS...
spinservers美国圣何塞机房的独立服务器补货120台,默认接入10Gbps带宽,给你超高配置,这价格目前来看好像真的是无敌手,而且可以做到下单后30分钟内交货,都是预先部署好了的。每一台机器用户都可以在后台自行安装、重装、重启、关机操作,无需人工参与! 官方网站:https://www.spinservers.com 比特币、信用卡、PayPal、支付宝、webmoney、Payssi...
官方网站:点击访问创梦网络宿迁BGP高防活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式宿迁BGP4vCPU4G40G+50G20Mbps1个100G不限流量299元/月 209.3元/月点击自助购买成都电信优化线路8vCPU8G40G+50G20Mbps1个100G不限流量399元/月 279.3元/月点击自助购买成都电信优化线路8vCPU16G40G+50G2...
素数算法为你推荐
离线包怎样下载离线地图包?bean是什么意思javabean和实体类的区别?mergefield邮件合并日期,想让电子表格中的日期格式与WORD中的日期格式一致爱短信官网官方飞信,ET飞信,爱短信飞信插件哪个好用??youtube创始人比特币创始人到底是谁ico监管新加坡代币ICO备案怎么做pat是什么格式photoshop填充图案是pat格式,需用什么软件打开?请高人指点,谢谢~云办公平台什么叫云办公啊?谁能通俗的给我讲下医院排队系统怎么将排队系统的信息显示在led上za是哪个国家的IE是哪个国家的缩写
中文域名交易中心 火山主机 simcentric hnyd 绍兴高防 河南移动邮件系统 中国电信测网速 卡巴斯基免费试用版 万网空间管理 登陆空间 视频服务器是什么 网站加速软件 php服务器 lamp兄弟连 免费网络空间 服务器硬件配置 睿云 七十九刀 hdchina privatetracker 更多