永发信息网

关于求素数的程序

答案:1  悬赏:20  手机版
解决时间 2021-08-10 18:36

#include <stdio.h>
#include <math.h>

int prime(int n)              //  定义prime函数 判断数字是否是素数
{
   int i,k;
   k=sqrt(n);                 //简化运算
    for(i=2;i<=k;i++)
 {
   if(n%i==0)
   break;
   if(i>=k)
      return 1;
 }
}


void main()
{
   int i,sum=0;
   long int n;               
   printf("INPUT N:\n");  // 求1-N的素数和
 scanf("%d",&n);
      for(i=2;i<=n;i++)
   {
      if(prime(i)==1)  //调用prime函数判断
        sum+=i;    //求和
   }
 printf("1 TO %d prime's sum is:%d\n",n,sum);
}

 

 

 k=sqrt(n);              这里为什么要求平方根???

最佳答案

判断一个数是否为素数只要判断这个数被不大于该数的平方根的所有正整数整除就可以了(1除外)


也就是说一个自然数n只要被不大于根号n的其他自然数整除就可以了(1除外,从2开始到sqrt(n))


你如果要从2到n其实也是可以的,只不过循环的次数要多一些,程序的效率就会低一些

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大家帮我看看这个视频叫什么名字啊
平桥区信阳好莱坞网咖(名吃城店)我想知道这个
熄灭后怎么重新点亮彩钻
上西峰五中难啊......
杰夫·莫斯的技术可以超过凯文·米特尼克?
3366收藏大乐透活动
梦幻17修要多少帮贡?
牛年不利的人怎样才可以去霉运呀
男人有的怎么也喜欢试衣服逛街
QQ炫舞幸运币有什么用?
是不是8.15不玩.在挂.都可以的3888吗
七半夕要怎么过?怎么
硚口区武汉异维风尚怎么去啊,谁知道地址啊
歌词"不在乎要离开"这首歌叫什么名字?
我想在淘宝网上做代理商,到哪里找好一点的厂
推荐资讯
网上为什么没有唐山大地震电影的完整版啊
何时才能摆脱痛啊
谁喜欢刺激?
圣安地列斯高手进!
问一个游戏不记得名字了
最近脸部皮肤粗糙、怎么保养才可以恢复以前的
什么东西属于我?
解决贫血有什么方法呢?
三国群英传7: 自设兵种替换法
潜江市潜江好环境硅藻泥我想知道这个在什么地
怎样从别人的家族中退出来
别人欠钱,有欠条没有还款日期,已经要了一个多
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?