C++ 计算小于n的素数个数。此程序有何问题?望各位高人不吝赐教...

发布网友 发布时间:2024-10-24 15:17

我来回答

2个回答

热心网友 时间:2024-11-09 17:24

if(n>3)
num=num+2;

这里为什么要加2了?如果大于3那你上面算法已经计算了1跟3,这两个数已经加上去了,你再加就会多2.所以这两行应该去掉
if(n==3)
num=num+1;这两句最好放在函数最前面。 然后当n>3的时候再循环计算。

热心网友 时间:2024-11-09 17:22

帮你改了下,只输出了个数,要输出是哪些值自己加上语句吧
#include <iostream.h>
#include <math.h>
int fun (int n);
void main()
{
int n;
cin>>n;
int m=fun(n);
cout<<m<<endl;
}
int fun(int n)
{
int i;int num=0;int j;int flag;
for(i=1;i<=n;i++)
{
flag=1;
for(j=2;j<i;j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==0)num++;

}
num=num+2;
return num;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com