• uva 10168 哥德巴赫猜想


    https://vjudge.net/problem/UVA-10168

       给出一个整数n,问是否能将它化为四个素数相加的形式,如果可以的话就输出这四个数。显然n<8时是不可能的。对于大于等于8得数,如果是个奇数,可以将其-2-3形成一个偶数,同理将偶数-2-2形成另一个偶数。哥德巴赫猜想是对于任意大于等于6的偶数都能分解为两个奇素数的和,正好将这个偶数再次分为两个素数加上前面的两个凑成四个。

      
    ps.难道数据很弱么1000w的范围竟然30ms就跑完了欸

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<vector>
     5 #include<cmath>
     6 using namespace std;
     7 #define LL long long
     8 #define inf 0x3f3f3f3f
     9 bool is[10000005];
    10 void prepare()
    11 {
    12     is[0]=is[1]=1;
    13     int m=sqrt(10000000+0.5);
    14     for(int i=2;i<=m;++i)
    15     {
    16         if(!is[i]){
    17             for(int j=i*i;j<=10000000;j+=i)
    18                 is[j]=1;
    19         }
    20     }
    21 }
    22 int main()
    23 {
    24     int N,i,j,k;
    25     prepare();
    26     while(scanf("%d",&N)==1){
    27             if(N<8) {puts("Impossible.");continue;}
    28             if(N%2==1){printf("2 3");N-=5;}
    29             else      {printf("2 2");N-=4;}
    30             int m=N/2;
    31             bool ok=1;
    32             for(i=2;;i++){
    33                 if(is[i]==0&&is[N-i]==0){
    34                     printf(" %d %d
    ",i,N-i);
    35                     ok=0;
    36                     break;
    37                 }
    38             }
    39     }
    40     return 0;
    41 }
  • 相关阅读:
    [译]Java例解Interface
    【笔记】2014-01至2014-02
    【笔记】2013-12
    【笔记】2013-10至2013-11
    【笔记】2013-09
    【笔记】2013-08
    【笔记】2013-07
    生活工作中好用的快捷键和小工具(更新)
    Android Studio更新Gradle问题
    gradle构建spring5源码
  • 原文地址:https://www.cnblogs.com/zzqc/p/7470626.html
Copyright © 2020-2023  润新知