C语言编程问题.先谢过了.

来源:百度知道 编辑:UC知道 时间:2024/06/27 05:53:32
证明2000以内的正偶数都能被分解成两个素数之和.
如:2000=3+1997;
1998=5+1993.
素数:只能被1和其本身整除的数.

#include"stdio.h"
void fun(int);//函数声明
int fun2(int);
main()
{
int a;
while(1)
{
printf("请输入要验证的正偶整数(0~2000):");
scanf("%d",&a);
if(a<0||a>2000 ||a%2!=0)//输入的数字不符合正偶数的要求
printf("输入的数字有误。请重新输入!\n");
else
{
fun(a);//调用函数解决问题
break;
}
}
}
void fun(int a)
{
int i;
for(i=1;i<=a/2;i+=2)//如果是素数,它一定是奇数,步长加2
{
if(fun2(i)&&fun2(a-i))//分解的两个数同时是素数
{
printf("正偶数%d可以分解为素数%d,%d之和。\n",a,i,a-i);
break;
}
}
}
int fun2(int j)//判断一个数是否为素数,是,返回1,否则返回0。
{
int k;
for(k=2;k<=j/2;k++)
{
if(j%k==0)
break;
}
if(k>j/2)
return 1;
else
return 0;
}