呵呵,其实我没有看到这个n的范围.既然有,那么就不用判断了4了.
刚开始我是因为要照顾到a+=2来提高效率,所以直接把4拿出来做一次判断.
----------------解决方案--------------------------------------------------------
呵呵!确实,都是英文,看着都头疼啊!刚开始我也没注意到那里呀!
----------------解决方案--------------------------------------------------------
n可以到1000000那就有个效率的问题
----------------解决方案--------------------------------------------------------
嗯!确实是!我们的作业有要求:时间限制 1 秒 。
----------------解决方案--------------------------------------------------------
a根本不会循环这么多.
1000000=17+999983
----------------解决方案--------------------------------------------------------
8
8=3+5
1000
1000=3+997
10000
10000=59+9941
100000
100000=3+99997
1000000
1000000=17+999983
#include<stdio.h>
int is_sushu(long a)
{
long i=2;
while(i*i<=a)
{
if(a%i==0)
{
return(0);
}
i++;
}
return(1);
}
main()
{
long a,num;
while(EOF!=(scanf("%ld",&num))&&num%2==0)
{
a=3;
while(1)
{
if(is_sushu(a)&&is_sushu(num-a))
{
printf("%ld=%ld+%ld\n",num,a,num-a);
break;
}
a+=2;
}
}
getch();
}
----------------解决方案--------------------------------------------------------
这题我们中专也有
感觉不是太难啊 但不过题目是中文的 呵呵
----------------解决方案--------------------------------------------------------
质数:只能整除1和本身的整数.(1不是质数)这句话我理解了.
但是在程序中要如何判断一个数是不是质数啊?
只要a,num-a都是质数,则结束循环.否则a+=2,循环结束条件为(a<num/2);
这句话是什么意思啊?
----------------解决方案--------------------------------------------------------
用循环判断质数 看是它是否只能被1和本身整除 可以编一个判断质数的函数
那句话好象是 避免有重复的出现 比较5=2+3 避免5=3+2 两个是一样的
没仔细看题 原来做过
----------------解决方案--------------------------------------------------------
哈工大软件 专业 真羡慕啊
我只是一个垃圾大学的大专生 呵呵
----------------解决方案--------------------------------------------------------