发布网友 发布时间: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;
}