偶数分解的C语言程序,偶数分解为两个质数的和(C语言)

题目:在控制台程序实现,用户输入一个大于2的偶数,把它分解成两个质数的和.

C语言代码如下:(自己修改了几次,虽然简单,但还是比较有成就感)

#include

int PrimeNum(int );

void main()

{

//质数百度上说,是指在一个大于1的自然数中,除了1和它本身外,

//不能被其他整数整除的数

//也就是说,1不是质数

int i,j,n,a;//i,j为所求的两个质数

int flag_i=0, flag_j=0;//flag_i等于0标志i为非质数,flag_i等于1标志i为质数

do{

printf("请输入个偶数n:\n");

a=scanf("%d",&n);//a获取scanf()函数的返回值

if (n%2 || a!=1 )

{

printf("你输入的不是偶数,请重新输入!\n");

fflush(stdin);//清空缓冲区

}

}while(n%2 || a!=1 );

printf("把偶数%d分解成两个质数相加的两个质数为:\n", n);

for (i=1; i<=(n/2); i++)

{

flag_i=PrimeNum(i);//判断i是否为质数

if (1==flag_i)//如果i为质数,则执行下面程序

{

j=n-i;

flag_j=PrimeNum(j);//判断j是否为质数

if (1==flag_j)//如果j为质数,则执行下面程序

{

printf("%d %d\n", i,j);

}

}

}

}

int PrimeNum(int x)//判断整型数x是否为质数的函数

{

int i ,flag=1;//flag置为1,代表x为质数

for(i=2; i

{

if (0==x%i)

{

flag=0;//x不是质数,则标志位置为1

}

}

return flag;

}

运行结果截图为:

你可能感兴趣的:(偶数分解的C语言程序)