您的位置:

c语言求素数为什么会输出奇数呢,编程实现输入的数字是否为素数

本文目录一览:

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,最后,循环结束后,输出统计变量的值。