验证哥德巴赫猜想,哥德巴赫猜想的内容是:任何一个大于2的偶数都能写成写成两个素数和的形式。
设计一个函数 int isPrime(int n)判断n是否为素数,如果n是素数,函数返回值1,否则返回0。
利用此函数在主函数中,把m到n之间(m,n为偶数,且为输入数据)的所有偶数,写成i=a+b的形式,a,b都是素数。
如果i有多个素数和,例如:
10=3+7
10=5+5
要求第1个素数3、5按照从小到大的顺序输出
输入输出样例:
6 20 (注:运行时的输入)
6=3+3 (注:运行时的输出)
8=3+5
10=3+7
10=5+5
12=5+7
14=3+11
14=7+7
16=3+13
16=5+11
18=5+13
18=7+11
20=3+17
20=7+13
自己写的,有学长的帮助
#include <stdio.h>
#include <stdlib.h>
int isPrime(int x);
int hanshu(int y);
int main(){
int m,n;
scanf("%d%d",&m,&n);
for(m;m<=n;m+=2)
{
isPrime(m);
}
}
int isPrime(int x){
int flag=0;
int b=0;
int g;
int a[100]={0};
for(int i=2;i<x;i++)//求2~x的素数放到a[100]里
{
g=hanshu(i);
if(g==1)
{
a[b]=i;
b++;
}
}
for(int c=0;c<100;c++)
{
for(int d=c;d<100;d++)
{
if(x==a[c]+a[d])//
{
printf("%d=%d+%d\n",x,a[c],a[d]);
}
}
}
}
int hanshu(int y){//封装确认素数的函数
int flag=1;
for(int j=2;j<y;j++)
{
if(y%j==0)
{
flag=0;
break;
}
}
if(flag==1)
{
return 1;
}
else
{
return 0;
}
}
c语言验证哥德巴赫猜想
最新推荐文章于 2024-07-21 19:07:25 发布