永发信息网

怎么判断1到100之间的素数?用C语言程序

答案:2  悬赏:60  手机版
解决时间 2021-11-12 07:33
怎么判断1到100之间的素数?用C语言程序
最佳答案
//1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
//2.程序源代码:
#include "stdio.h"
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m<=100;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{
leap=0;break;
}
if(leap)
{
printf("%-4d",m);
h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
return 0;
}追问为啥要用平方根这个函数??为啥⊙▽⊙!?
全部回答
这好像是C语言书上一个例子,lz问之前可以搜一下,这题被网上问过好多了。。。下面为copy

判断素数的方法:用一个数分别去除以2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
#include〈math.h〉
main()
{ 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是素数
}
}追问为啥要用平方根这个函数??为啥???追答“因为如果一个数不是素数是合数,
那么一定可以由两个自然数相乘得到,
其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。”
对于某个数,平方根相当于中点,如果你找到一半都没有找到可以整除的,那么就不用再继续搜索了,节省计算成本
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
财富派一个可靠的投资平台吗
散尽千金,求名字
高考成语串背
草莓如何进行光合作用?
蒙城县房地产管理局房产交易中心地址好找么,
《别老母》表达了什么。
我国之所以坚持和完善按劳分配为主体、多种分
买了一块玉,不知道是不是真的,有懂坚定下么
TFBOYS-样(YOUNG)歌词
内地一线明星大家认可这个榜单吗
请问:二五加九八发财,单数还是双数
有谁在网上跟深圳领达贷款公司贷过款啊?知道
德国配合默契,是不是因为很多主力都来自拜仁
冬梅发廊地址有知道的么?有点事想过去!
ひきしまる是什么意思
推荐资讯
足球比赛中,为什么通常10号球员是明星?
.I have called the station and they told
TPU加什么类型的色母料
人生的困惑于坚守 论文
甲,乙两小组计划本月生产零件数的比是2:5,
win10更新需要多久?我的电脑这样正常吗?
我在京东上用金币兑换了搜狐15元搜狐会员季卡
协通XT800的主要功能和特性
去上虞市职教中心怎么乘车
小赢卡贷被拒后多久才能再
人死后真的可以找到原来死去的亲人吗?
美国全红下小鱼时母鱼什么状态,给图最好。 尤
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?