c实现哥德巴赫猜想

来源:互联网 发布:linux # $ 编辑:程序博客网 时间:2024/05/17 03:09

著名的哥德巴赫猜想是说:任一大于2的偶数,都可表示成两个质数之和(质数,又称素数,指在大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数)。现在给定一个大于等于4的偶数,请输出它能表示成多少种两个质数的和。输入:偶数n (4<=n<=32766)。输出:请输出它能表示成多少种两个质数的和。例如10=3+7=5+5,所以输入10的话答案是2。

#include "stdio.h"#include <math.h>int GoldbachConjecture(int n){  int count,i;  count = 0;  for(i=2;i<=n/2;i++)  {  if(IsPrime(i) && IsPrime(n-i))  {     printf("n = %d + %d\n",i,n-i);    count++;  }  }  return count;}int IsPrime(int a){int i; for(i = 2; i < (int)sqrt(a)+1; i++) { if(a %i); else break; } if( i > (int)sqrt(a)) return 1; else return 0;}void main(){int n,res;scanf("%d",&n);//printf("%d",n);res = GoldbachConjecture(n);printf("%d ",res);}


0 0
原创粉丝点击