前言
我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!我的水题!
一、分析
题目要求:给你一个偶数,要你用小于这个数且位素数的奇数的和来组成这个数,并且这两个数的间隔必须是所有组合中最大的。
目的已经很明确了,我们可以直接向前和向后同时遍历,这样找出的第一组数据就是答案,再加上一些判定,答案很快就能出来,话不多说上代码。
二、代码
代码如下(示例):
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int isprime(int k)
{
int i;
int t=sqrt(k) ;
for( i=2; i<=t; i++)
if(k%i==0)
return 0;
return 1;
}
int main()
{
int n,a,b;
int i,j;
while(scanf("%d",&n)==1)
{
if(n==0) break;
for(i=3,j=n-3;i<=n-3&&j>=3;i++,j--)
{
if((i+j)==n&&isprime(i)&&isprime(j))
{
a=i;
b=j;
break;
}
}
printf("%d = %d + %d\n",n,a,b);
}
return 0;
}