c语言编程
写两个函数prime和goldbach,前者用于判断一个数是否为素数,后者用于验证哥德巴赫猜想:任何不小于4的偶数,都可表示为两个素数之和(如:4=2+2)。
要求与提示:
1) main函数负责循环提示用户输入一不小于4的偶数num,并验证num是否满足哥德巴赫猜想。若用户的输入不满足要求,则提示错误原因并要求重新输入。要求循环有退出机制。
验证哥德巴赫猜想的方法:main函数调用goldbach函数,并将num作为实参传递。在goldbach函数中将接收到的参数拆分成两个整数,调用prime函数分别判断这两个整数是否是素数,若二者皆为素数,输出num符合哥德巴赫猜想的信息,并退出寻找过程。
程序参考
#include <stdio.h>
#include <math.h>
int prime(int n)
{
int i, k;
k = (int)sqrt((double)n); //提高效率
if(n < 2) //2以下不能是素数
return 0;
for(i = 2; i <= k; i++)
{
if(n % i == 0)
return 0;
}
return 1;
}
void goldbach(int n) //哥德巴赫猜想
{
int i,j;
for(i = 2; i <= n /2; i++)
{
j=n-i;
if (prime(i) && prime(j))
{
printf("%d=%d+%d ", n, i, j);
return ;
}
}
}
int main(void)
{
int num;
scanf("%d", &num);
while(num<4)
{
printf("num must >=4 ");
scanf("%d", &num);
}
goldbach(num);
return 0;
}
下一篇:多条件if函数,只返回第一个结果
上一篇:7.下列程序段的输出是_____