C大大进啊~~~

来源:百度知道 编辑:UC知道 时间:2024/07/07 18:27:24
#include "stdio.h"
void main()
{
int a[50],count,i,j,k,c;
count=0;
c=0;
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)
if (i%j==0) break;
if(i==j)
{
a[count]=i;
count++;
}
}

for(i=6;i<=100;i=i+2)
{
for(j=0;j<count;j++)
for(k=0;k<count;k++)
{
if(i<(a[j]+a[k])) break;
if(i==(a[j]+a[k]))
{
printf("%d=%d+%d ",i,a[j],a[k]);
c++;
if(c%5==0) printf("\n");
}
}

}
printf("\n");
}
请解释下,这语句执行后什么结果~~什么意识的语句哈~~谢谢~~

应该是输出从6到100中的数有哪些可以写成两个素数相加的形式吧

开始的那个循环是用来求素数的

后面的整个循环体就是用来判断是否可以表达成两个素数相加的形式

这一句?
是说这个程序吧?
这个好像是个求质数的

将6~100的所有的偶数分解成为两个质数的和

6=3+3 8=3+5 8=5+3 10=3+7 10=5+5
10=7+3 12=5+7 12=7+5 14=3+11 14=7+7
14=11+3 16=3+13 16=5+11 16=11+5 16=13+3
18=5+13 18=7+11 18=11+7 18=13+5 20=3+17
20=7+13 20=13+7 20=17+3 22=3+19 22=5+17
22=11+11 22=17+5 22=19+3 24=5+19 24=7+17
24=11+13 24=13+11 24=17+7 24=19+5 26=3+23
26=7+19 26=13+13 26=19+7 26=23+3 28=5+23
28=11+17 28=17+11 28=23+5 30=7+23 30=11+19
30=13+17 30=17+13 30=19+11 30=23+7 32=3+29
32=13+19 32=19+13 32=29+3 34=3+31 34=5+29
34=11+23 34=17+17 34=23+11 34=29+5 34=31+3
36=5+31 36=7+29 36=13+23 36=17+19 36=19+17
36=23+13 36=29+7 36=31+5 38=7+31 38=19+19
38=31+7 40=3+37 40=11+29 40=17+23 40=23+17
40=29+11 40=37+3 42=5+37 42=11+31 42=13+29
42=19+23 42=23+19 42=29+13 42=31+11 42=37+5
44=3+41 44=7+37 44=13+31 44=