输出200以内的所有素数

哪里出错了,该怎么修改

#include<stdio.h>

#include<math.h>

int main()

{int m,k,i,n=0;

for(m=0;m<200;m=m+2)

{k=sqrt (m);

for(i=2;i<=k;i++)

    if(m%i==0)break;

if(i>=k+1)

{printf("%d",m);

n=n+1;

}

if(n%10==0)printf("\n");

}

printf("\n");

    return 0;

}

 

sqrt只支持double和float类型,具体怎么修改不清楚。不使用sqrt函数,只用循环体也可以实现,希望有帮助。

#include<stdio.h>
int main()
{
	int conut = 0;
	int i = 0;
	for(i=2; i<=200; i++)     //先找出来2到200的所有整数,都为i
	{
		int j = 0;
		for(j=2; j<i; j++)      //用i去对除了1和它本身以外的数求余
		{
			if(i%j == 0)
				break;
		}
		if(j==i)
		{
			conut++;
			printf("%d ", i);
			if(conut%5==0)
				printf("\n");
		}
	}
	printf("\n");
	printf("素数个数为:%d\n", conut);
	return 0;

}

 

m=0那里改成m=1

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^