C语言 寻找素数对

Python017

C语言 寻找素数对,第1张

#include<stdio.h>

#include<string.h>const int MAX=10005bool b[MAX]int main()

{

int i,j,k,m,f

//求出10000以内的所有素数

memset(b,true,sizeof(b))

i=2

while(i<102)

{

if(b[i])

{

j=i*i

while(j<MAX)

{

b[j]=false

j+=i

}

}

i++

}

while(scanf("%d",&m)==1)

{

k=m>>1

i=2

while(i<=k)

{

if(b[i]&&b[m-i])

f=i

i++

}

printf("%d %d\n",f,m-f)

}

return 0

}

按照如下步骤即可用C语言判断素数:

1、首先打开visual C++ 6.0,然后点击左上角的文件,再点击新建。

2、然后在弹出的新建对话框中点击C++Source File。

3、在新建的文件文本框中输入预处理命令和主函数,即函数头和空类型。

4、然后再定义变量并输入一个数字,即定义变量的数据类型,输出文字提示,再输入一个数字。

5、然后用for函数和if函数判断是否是素数。

6、点击确定后即可成功创建刚刚新建的程序,随机输入一个数字即可验证一下刚刚创建的C语言。

不对。i<a/2应改为i<=a/2

a=4时,不满足i<a/2的条件,不执行循环,返回值1。结果4是素数,其实4是合数

其余的语句都是正确的。就是i从2开始,如果a能被i整除,说明i是a的因子,a是合数,返回值0,中断,结束循环。循环结束找不到能整除a的i,说明a是素数,返回值1。