@Metralix
2016-12-07T10:43:11.000000Z
字数 483
阅读 746
c语言
水题
题目大意:
给定一个n(12<=n<=10^6),求出符合以下要求的x和y:
1.x+y=n
2.x和y都是合数
解题思路:
合数是指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数,所以我设计了一个函数,里面通过循环来判断该数是否有1以为的因子。主函数中也使用暴搜,把这个数照出来。由于只要写一组数据就可以,所以虽然时间复杂度高,但是不会T。
时间复杂度O(n^2)。
AC代码:
#include <stdio.h>
#include <stdlib.h>
int su(int a)
{
int j;
int ju=1;
if(a==1) return 0;
else
{
for(j=2;j<a;j++)
{
if(a%j==0)
{
return 1;
ju=0;
break;
}
}
if(ju) return 0;
}
}
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<n;i++)
{
if(su(i)==1&&su(n-i)==1)
{
printf("%d %d",i,n-i);
break;
}
}
return 0;
}