标题:求前100个素数,运行不出结果,请大神帮忙看看问题出在哪里?
只看楼主
fytothesy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-9-23
结帖率:0
已结贴  问题点数:20 回复次数:5 
求前100个素数,运行不出结果,请大神帮忙看看问题出在哪里?
/* Note:Your choice is C IDE */
#include "stdio.h"
#include<math.h>
void main()
{
int i,m,k,n=0;
while(n!=100)
{
for(m=2;;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)   
break;
if(i>=k+1)
printf("%-5d",m);
n++;
}   
}   
}
}
搜索更多相关主题的帖子: 素数 结果 for include 运行 
2019-09-23 23:08
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:4 
程序代码:
#include <stdio.h>
#include <math.h>
int main(void)
{
  int i; /*外循环*/
  int j; /*内循环*/
  int flag; /*素数标志,flag为1则此数为素数*/
  flag = 0;
  //int n;
  i = 2;
  while( i <= 100)
  {
      j = 2;
      flag = 1; /*假设此数为素数*/
      while(j <= (int) sqrt(float(i)))
         {
          if(0 == (i %j))
          flag = 0; /*根据第三种算法可知次数不为素数*/
          j ++;
        }
   if(flag)
   printf("%d\t",i);
   i++;
  }
  printf("\n");
  return 0;
}
2019-09-24 08:29
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:4 
已经求的的素数也可以作为取模参数,可以增加循环的步长

剑栈风樯各苦辛,别时冰雪到时春
2019-09-24 08:59
鸡蛋挑骨头
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2019-9-25
得分:4 
回复 2楼 自学的数学
sqrt函数使用的时候,float多余了吧
2019-09-25 21:12
陈锦鹏
Rank: 1
等 级:新手上路
帖 子:50
专家分:4
注 册:2019-9-25
得分:4 
2019-09-25 22:05
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:4 
回复 楼主 fytothesy
第一个for循环语句,没有给出循环的结束条件,为死循环,所以也无法将n的值传递给while语句。
可以将判断条件n<=100加入到for语句中,构成一个完整的循环。
for(m=2;;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)   
break;
if(i>=k+1)
printf("%-5d",m);
n++;
}   
}

2019-09-26 02:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496969-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016762 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved