来源:
西安电子科技大学XDOJ在线C语言编程练习题35
问题描述:
德巴赫猜想:
任意一个大偶数都能分解为两个素数的和,
对与输入的一个正偶数,写一个程序来验证歌德巴赫猜想。
由于每个正偶数可能分解成多组素数和,仅输出分解值分别是最小和最大素数的一组,按从小到大顺序输出。
输入输出说明:
输入说明
输入一个正偶数n,1<n<1000。
输出说明
输出分解出的两个最小和最大素数。
解题思路:
1.定义一个函数用于判断一个数是不是素数;
2.输入一个数n;
3.循环,当i和n-i都是素数时终止循环并输出;
代码实现:
#include<stdio.h>
int prime(int i){
int j,ret=0;
if(i!=2){
for ( j = 2; j < i; j++)
{
if (i%j==0)
{
ret=1;
}
}
}
return ret;
}
int main(){
int n,i,pi,t;
scanf("%d",&n);
for ( i = 2; i < n; i++)
{
if (prime(i)==0&&prime(n-i)==0)
{
printf("%d %d",i,n-i);
break;
}
}
return 0;
}