本文目录一览:
c语言求素数
算法错误。
错误1、
关于i的循环、j的循环是嵌套循环,缺少大括号。
错误2、
if(i%j==0)
break;
else printf("%d\t",i);
i是偶数时没问题,i是奇数时问题就来了。是合数的奇数只有遇到它最小的质因数才结束,之前一次次输出。是素数的奇数更是每次都输出。结果输出了整屏整屏的数。
修改:
#include stdio.h
void main()
{
int i,j;//k、m、n都没有用到,去掉
for(i=100;i=9999;i++)
{//添加大括号
for(j=2;ji;j++)
if(i%j==0)
break;
if(j=i) printf("%d\t",i);//else改为if(j=i)
}//添加大括号
}
c语言求解 求100以内所有素数并输出
#includestdio.h
#includemath.h
void main()
{
int m,k,n=0;
for(m=1;m=100;m=m+2)//因为偶数肯定不会是素数 所以只是需要判断奇数的情况 算法简化
{
k=sqrt(m);//sqrt是开平方
for(i=2;i=k;i++)
if(m%i==0)break;
if(i=k+1)
printf("%d",m);
}
}
C语言编写输出100到200之间的全部素数并统计个数?
首先定义一个素数判断函数fun,int fun(int x),在里面如果x能被2整除,return 0,然后进入一个以3为初值,步长为2,条件测试表达式为sqrt(x)的for循环,如果x能被i(循环变量)整除,则也是return 0,最后,添加返回语句return 1。
然后在main函数中建立一个以100为初始值,测试条件为200,步长为1的for循环,循环体里执行的是以循环变量为参数调用fun函数,如果它的返回值是1,则输出循环变量的值,并对统计变量的值加1,最后,循环结束后,输出统计变量的值。