你的C语言求素数的程序我帮你改完了(仅两处错误),你看看吧(改动的地方见注释)
#include<stdioh>#include<mathh>
int main()
{
int n,i=1;
int r;//这里float r;改成int r;因为整数除以整数所得余数还是整数
printf("input a number n=");
scanf("%d",&n);
for(i=2;i<=n-1;)
{
r=n%i;
if(r==0)
{
printf("%d不是素数\n",n);
return 0;
}
else
{
i=i+1;
if(i>sqrt(n))
{
printf("%d是素数\n",n);
return 0;
}
//else//这里去掉else语句块,因为如果i>sqrt(n)n就是素数,如果i<sqrt(n)应该让程序自动执行下去
//{
//return(n);
//}
}
}
}
程序及解释如下:
首先判断素数的算法:用一个数分别去除以2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
则有如下程序
{ int m,k,i;
for(m=1;m<=100;m=m+2) //m=m+2,因为偶数都不是素数,不用考虑,所以每次m+2
{ k=sqrt(m) //先求这个数的平方跟
for(i=2;i<=k;i++) //然后用i(从2到k,即m的平方跟)去除m,
if(m%i==0) break; //如果能被整除, 则不是素数,break
if(i>=k+1) pritnf("%d",m); //如果i>k+1,则说明没有数能整除m则m是素数
}
}
扩展资料:
素数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(分解质因数)过久,使即使取得信息也会无意义。
在汽车变速箱齿轮的设计上,相邻的两个大小齿轮齿数设计成质数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。
在害虫的生物生长周期与杀虫剂使用之间的关系上,杀虫剂的质数次数的使用也得到了证明。实验表明,质数次数地使用杀虫剂是最合理的:都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。
以质数形式无规律变化的导d和鱼雷可以使敌人不易拦截。
多数生物的生命周期也是质数(单位为年),这样可以最大程度地减少碰见天敌的机会。
参考资料:
以上就是关于C语言求素数全部的内容,包括:C语言求素数、用C语言编1到100之间的素数程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)