标题: C语言程序实现将一个数分两个素数之和 [打印本页]

作者: 51hei社区    时间: 2016-1-10 23:23
标题: C语言程序实现将一个数分两个素数之和
  1. #include"stdio.h"
  2. int main(void)
  3. {

  4.     long int n,j,i,k,jl;
  5. printf("Enter n:");
  6. scanf("%ld",&n);   
  7. for(k=2;k<=n/2;++k)       //k等于n一半的原因是为了让前面的和后面的没有重复
  8. {
  9.   i=2;                  //让i从2开始判断k
  10.      while(k%i!=0) i++;   //从n/2之前找一个素数
  11.         if(i>k/2)             //如果i比k/2大则说明已判断完,k为素数
  12.      {
  13.              jl=n-k;         
  14.              j=k;               //让j从k的后在面找避免和前面k中已有值重复
  15.            while(jl%j!=0) j++;   //判断n减去上面素数的结果不是不一个素数
  16.      if(j>jl/2&&n==k+jl)  
  17.       printf("%ld=%d+%ld ",n,k,jl);  
  18.      }
  19. }
  20. return 0;
  21. }
复制代码







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1