zoukankan      html  css  js  c++  java
  • 验证哥德巴赫猜想

     1 //验证2到一百万(任何一个大于2的偶数都可以表示成两个素数之和) 
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cmath>
     5 using namespace std;
     6 
     7 const int N = 1000000;
     8 
     9 bool vis[N] = {0};
    10 void init_prim()
    11 {
    12     int i,j,k;
    13     int m = (int)(sqrt(N)+0.5); 
    14     memset(vis,0,sizeof(vis));
    15     vis[0] = 1;
    16     vis[1] = 1;
    17     for(i=2; i<m; i++)
    18     if(!vis[i])
    19     {
    20         for(j=2*i; j<N; j+=i)
    21             vis[j] = 1;
    22     }  
    23 }
    24 
    25 int main()
    26 {
    27     int i,j,k;
    28     init_prim();
    29     for(i=4; i<N; i+=2)
    30     {
    31         for(j=2; j<i; j++)
    32         {
    33             int temp = i-j;
    34             if(!vis[j]&&!vis[temp])//为加快速度,可以把素数单独存在数组里 
    35             {
    36                 cout<<i<<" = "<<j<<" + "<<temp<<endl;
    37                 break;
    38             }
    39         }
    40         if(i==j)
    41         {
    42             cout<<""<<i<<"处定理不成立!"<<endl;
    43             exit(1);//在此异常退出时并未打印----------- 
    44         }
    45     } 
    46     cout<<"--------------"<<endl;
    47     while(1); 
    48     return 0;
    49 }
  • 相关阅读:
    JAVA微信公众号网页开发——获取公众号关注的所有用户
    删除mysl
    sql语言(mysql)
    mycat读写分离
    mysql双主双从技术
    实用的10个日志处理案例
    ansible基本操作
    MySQL改密
    mysql源码包安装
    ftp搭建mysql服务器
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2851682.html
Copyright © 2011-2022 走看看