标题:有问题求大佬解答
只看楼主
barca
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-11-24
结帖率:33.33%
已结贴  问题点数:20 回复次数:5 
有问题求大佬解答
题目:求【1,n】素数的个数
#include<stdio.h>
int su(int m)
{
   
    int i;
    if(m<2) return 0;
    for(i=2;i<m;i++)
    {
      if(m%i==0)
      break;}
      if(i==m) return 1;
      else  
      return 0;
}
 int main()
 { int a,i;
 int sum=0;
 scanf("%d",&a);
     for(i=1;i<=a;i++)
     sum+=su(a);
     printf("%d",sum);
 }
我的想法是  写个判断素数的函数 然后累加返回值
搜索更多相关主题的帖子: 素数 int return i++ sum 
2017-12-01 18:19
墨点
Rank: 2
等 级:论坛游民
帖 子:3
专家分:16
注 册:2017-12-1
得分:7 
判断素数段可以优化程序,只取余到sqrt(m)
2017-12-01 22:15
barca
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-11-24
得分:0 
回复 2楼 墨点
这个我是清楚的  我只是不知道为什么这个程序是错的  return 1 1是状态还是数?
2017-12-02 08:36
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
得分:7 
1 2都属于素数
程序代码:
#include<stdio.h>

 int su(int m)

 {
     
     int i;
     if(m<2) return 1;
     for(i=2;i<m;i++)
     {
       if(m%i==0){
           break;
       }
       
       if(i==m) return 1;
       else  
       return 0;

 }
return(1); 
}
int main(void)
{

 int a,i;

 int sum=0;

  scanf("%d",&a);
      for(i=1;i<=a;i++)
      {
          sum+=su(i);
      }
  printf("%d\n",sum);
return(0);

}
2017-12-03 18:05
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:7 
回复 4楼 虫眼
1不是素数

早知做人那么辛苦!  当初不应该下凡
2017-12-03 18:26
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
得分:0 
if(m<2) return 1;
哪这个改回0
2017-12-03 19:10



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




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

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