A. 用c语言验证哥德巴赫猜想,能用到调用函数,简单些的。结果是那种输入一个偶数,输出两个素数。
德国数学家哥德巴赫(Goldbach)在1725年写给欧拉(Euler)的信中提出了以下猜想:任何大于2的偶数,均可表示为两个素数之和(俗称为1+1)。近三个世纪了,这一猜想既未被证明,也未被推翻(即未找到反例)。
分析:
要将整数分解成两部分,然后判断分解出的两个整数是否都为素数。如是,则输出;否则,重新分解、判断。
编写一个程序,在有限范围内(例如4~2000)验证哥德巴赫猜想成立。请注意:这只是有限的验证,不能作为对哥德巴赫猜想的证明。
程序如下:
#include "stdio.h"
#include "math.h"
main( )
{ int fflag(int i);
int i,n;
for(i=4; i<=2000; i+=2)
{for(n=2;n if(fflag(n)) /*分别判断两个整数是否均为素数*/
if(fflag(i-n))
{printf("%d=%d+%d\n",i,n,i-n); /*如均为素数则输出*/
break;
}
if(n==i)printf("error %d\n",i);
}
}
int fflag(int i) /*判断整数是否为素数*/
{ int j;
if(i<=1) return(0);
if(i==1) return(1);
if(!(i%2)) return(0); /*if no, return 0*/
for(j=3;j<=(int)(sqrt((double)i)+1);j+=2)
if(!(i%j)) return(0);
return(1); /*if yes, return 1*/
}
B. 楠岃瘉涓鍗冧互鍐呭伓鏁扮殑鍝ュ痉宸磋但鐚滄兂鐨凜璇瑷浠g爜锛
鍝ュ痉宸磋但鐚滄兂鎸囧嚭锛屾瘡涓澶т簬2鐨勫伓鏁伴兘鍙浠ュ啓鎴愪笁涓璐ㄦ暟涔嬪拰銆備互涓嬫槸楠岃瘉涓鍗冧互鍐呭伓鏁扮殑鍝ュ痉宸磋但鐚滄兂鐨凜璇瑷浠g爜锛
```c
#include <stdio.h>
int isPrime(int n) {
int i;
for(i = 2; i n; i++) {
if(n % i == 0)
return 0;
}
return 1;
}
int main() {
int num, i, flag;
for(num = 4; num <= 1000; num += 2) { // 閬嶅巻鎵鏈夊伓鏁
flag = 0;
for(i = 2; i <= num/2; ++i) {
if(isPrime(i)) { // 鍒ゆ柇绗涓涓鏁版槸鍚︿负璐ㄦ暟
if(isPrime(num-i)) { // 鍒ゆ柇绗浜屼釜鏁版槸鍚︿负璐ㄦ暟
printf("%d = %d + %d\n", num, i, num-i);
flag = 1;
break;
}
}
}
if(flag == 0)
printf("Unable to find the sum of three prime numbers.\n");
}
return 0;
}
```
杩欐典唬鐮佷娇鐢ㄤ簡isPrime鍑芥暟鏉ュ垽鏂涓涓鏁存暟鏄鍚︿负璐ㄦ暟銆傞栧厛閬嶅巻鎵鏈夊伓鏁帮紝鐒跺悗鍦ㄥ叾涓閫夊彇绗涓涓璐ㄦ暟锛屽啀鍦ㄥ墿浣欑殑閮ㄥ垎涓閫夊彇绗浜屼釜璐ㄦ暟锛屾渶鍚庡垽鏂鏄鍚﹁兘澶熸壘鍒版弧瓒虫潯浠剁殑涓変釜璐ㄦ暟銆傚傛灉鎵惧埌浜嗭紝鍒欒緭鍑虹浉搴旂殑缁撴灉锛涘惁鍒欒緭鍑衡淯nable to find the sum of three prime numbers.鈥濄俛i.aimpcapbp.top 鍙浠ヨВ绛斾綘鐨勭枒闂銆
濡傛灉鎴戠殑鍥炵瓟鍙浠ュ府鍒版偍锛岃峰強鏃堕噰绾冲摝锛