用C语言 将6~100间的偶数都表示成两个素数之和,打印时一行5组

用C语言 将6~100间的偶数都表示成两个素数之和,打印时一行5组。例如6=3+3,8=3+5,.....

第1个回答  2009-12-27
这个,已编译

#include<stdio.h>
#include<math.h>
int main(void)
{
int count=0,m,a,b;
int prime(int n);
for(m=6;m<=100;m=m+2){
for(a=2;a<=m/2;a++){
if(prime(a)==1&&prime(m-a)==1){
printf("%d=%d+%d ",m,a,m-a);
count++;
if(count%5==0) printf("\n");
break;
}
}
}
return 0;
}
int prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++){
if(n%i==0) return 0;
}
return 1;
}本回答被提问者采纳
第2个回答  2009-12-27
#include "stdio.h"
#include "math.h"

bool isPrime(int n)
{
int i;
if(n<2)
return false;
else
{
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return false;
}
return true;
}//判断一个数n是否为素数

void part(int n)
{
int i;
for(i=2;i<=n/2;i++)
if(isPrime(i)&&isPrime(n-i))
{
printf("%d=%d+%d\n",n,i,n-i);
return;
}
}//将一个正整数化为两个素数的和

void getResult()
{
int i;
for(i=6;i<=100;i+=2)
part(i);
}//输出你所需要的结果

void main()
{
getResult();
}
第3个回答  2020-05-03
这个,已编译
#include<stdio.h>
#include<math.h>
int
main(void)
{
int
count=0,m,a,b;
int
prime(int
n);
for(m=6;m<=100;m=m+2){
for(a=2;a<=m/2;a++){
if(prime(a)==1&&prime(m-a)==1){
printf("%d=%d+%d
",m,a,m-a);
count++;
if(count%5==0)
printf("\n");
break;
}
}
}
return
0;
}
int
prime(int
n)
{
int
i;
for(i=2;i<=sqrt(n);i++){
if(n%i==0)
return
0;
}
return
1;
}
第4个回答  2009-12-29
dfgdfh
相似回答