我写了一个,但答案不对,希望帮忙改一下,谢谢

本题要求输出2到n之间的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

输入格式:
输入在一行中给出一个长整型范围内的整数。

输出格式:
输出素数,每个数占6位,每行输出10个。如果最后一行输出的素数个数不到10个,也需要换行。

输入样例
10
输出样例:
2 3 5 7
** 我的答案输出里多了9**
#include
#include
long int sushu(long int n);
int main()
{
long int i,number;
scanf("%d",&number);
for(i=2;i<=number;i++)
{
if(sushu(i)==1)
printf("%6d",i);
}
}
long int sushu(long int n)
{
int i;
float pf;
pf=sqrt(n);
for(i=2;i<=pf;i++)
{
if(n%i==0)
return 0;
break;
}
if(i>pf)
return 1;
}

1个回答

long int sushu(long int n)里的break去掉

freemandj
freemandj 回复WYQDZTZ:我还想问一个,但要发图,我没办法发给你,求帮助
3 个月之前 回复
freemandj
freemandj 谢谢
3 个月之前 回复
ZL1599292797
QiQaWgYu 回复freemandj: n%i如果不等于0还要继续往下判断,你加个break就直接退出来了,下面的就没有判断
3 个月之前 回复
freemandj
freemandj 能告诉我为什么吗
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问