将6~100之间的偶数都表示成两个素数之和,打印时一行打印5组
| November 2, 2007 13:47 | timmy | Via Original
任何一个大于6的偶数均可以表示为两个素数之和。例如6=3+3,8=3+5,18=7+11。将6~100之间的偶数都表示成两个素数之和,打印时一行打印5组(用空格隔开)。要求定义并调用函数prime(int m)判断m是否为素数,函数返回类型为int。
例:
输出:
6=3+3 8=3+5 10=3+7 12=5+7 14=3+11
16=3+13 18=5+13 20=3+17 22=3+19 24=5+19
26=3+23 28=5+23 30=7+23 32=3+29 34=3+31
36=5+31 38=7+31 40=3+37 42=5+37 44=3+41
46=3+43 48=5+43 50=3+47 52=5+47 54=7+47
56=3+53 58=5+53 60=7+53 62=3+59 64=3+61
66=5+61 68=7+61 70=3+67 72=5+67 74=3+71
76=3+73 78=5+73 80=7+73 82=3+79 84=5+79
86=3+83 88=5+83 90=7+83 92=3+89 94=5+89
96=7+89 98=19+79 100=3+97
#include "stdio.h"
#include "math.h"
int prime(int m);
int main( )
{
int n,m,count=0;
for(n=6;n<=100;n=n+2){
for(m=3;m<=n/2;m=m+2){
if(prime(m)&&prime(n-m)){
printf("%d=%d+%d ",n,m,n-m);
count++;
break;
}
}
if(count==5){
count=0;
printf("\n");
}
}
}
int prime(int m)
{
int i,y;
if(m!=1){
for(i=2;i<=sqrt(m);i++)
if(m%i==0) break;
if(i>sqrt(m))
y=1;
else
y=0;
}
else
y=0;
return y;
}
例:
输出:
6=3+3 8=3+5 10=3+7 12=5+7 14=3+11
16=3+13 18=5+13 20=3+17 22=3+19 24=5+19
26=3+23 28=5+23 30=7+23 32=3+29 34=3+31
36=5+31 38=7+31 40=3+37 42=5+37 44=3+41
46=3+43 48=5+43 50=3+47 52=5+47 54=7+47
56=3+53 58=5+53 60=7+53 62=3+59 64=3+61
66=5+61 68=7+61 70=3+67 72=5+67 74=3+71
76=3+73 78=5+73 80=7+73 82=3+79 84=5+79
86=3+83 88=5+83 90=7+83 92=3+89 94=5+89
96=7+89 98=19+79 100=3+97
#include "stdio.h"
#include "math.h"
int prime(int m);
int main( )
{
int n,m,count=0;
for(n=6;n<=100;n=n+2){
for(m=3;m<=n/2;m=m+2){
if(prime(m)&&prime(n-m)){
printf("%d=%d+%d ",n,m,n-m);
count++;
break;
}
}
if(count==5){
count=0;
printf("\n");
}
}
}
int prime(int m)
{
int i,y;
if(m!=1){
for(i=2;i<=sqrt(m);i++)
if(m%i==0) break;
if(i>sqrt(m))
y=1;
else
y=0;
}
else
y=0;
return y;
}
Add a comment


信徒
依旧孤单







