哥德巴赫猜想C語言

1.每個不小於6的偶數都可以表示爲兩個奇素數之和;
2.每個不小於9的奇數都可以表示爲三個奇素數之和。

#include<stdio.h>
#include<math.h>
int check(int n){//判斷奇素數 
	int i;
	if(!(n%2))//判斷奇數 
		return 0;
	else{
		for(i=2;i<=(int)(sqrt(n));i++){//判斷素數 
			if(!(n%i))
				return 0;
		} 
	}
	return 1;
} 
void check1(int n){
	int i,j,k;
	for(i=3;i<n-5;i++){
		for(j=i;j<n-5;j++){
			for(k=j;k<n-5;k++){
				if((i+k+j==n)&&check(i)&&check(j)&&check(k)){
					printf("%d %d %d\n",i,j,k);
				}
			}
		}
	}
} 
void check2(int n){
	int i,j;
	for(i=3;i<n-2;i++){
		for(j=i;j<n-2;j++){
			if((i+j==n)&&check(i)&&check(j)){
				printf("%d %d\n",i,j);
			}
		}
	}
}
int main(){
	int n;
	puts("請輸入不小於6的偶數或不小於9的奇數");
	scanf("%d",&n);
	if(n%2)
		check1(n);
	else
		check2(n);
	return 0; 
} 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章