zoukankan      html  css  js  c++  java
  • hduoj 4715 Difference Between Primes 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4715

    Difference Between Primes

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

    Problem Description
    All you know Goldbach conjecture.That is to say, Every even integer greater than 2 can be expressed as the sum of two primes. Today, skywind present a new conjecture: every even integer can be expressed as the difference of two primes. To validate this conjecture, you are asked to write a program.
     
    Input
    The first line of input is a number nidentified the count of test cases(n<10^5). There is a even number x at the next n lines. The absolute value of x is not greater than 10^6.
     
    Output
    For each number x tested, outputs two primes a and b at one line separated with one space where a-b=x. If more than one group can meet it, output the minimum group. If no primes can satisfy it, output 'FAIL'.
     
    Sample Input
    3
    6
    10
    20
     
    Sample Output
    11 5
    13 3
    23 3
     
    Source

    分析:

    这道题就是求一个整数用两个素数(大于等于2)的差表示出来,要求两个素数在满足条件的情况下最小。

    AC代码:

     1 #include <stdio.h>
     2 #include <algorithm>
     3 #include <iostream>
     4 #include <string.h>
     5 #include <string>
     6 #include <math.h>
     7 #include <stdlib.h>
     8 #include <queue>
     9 #include <stack>
    10 #include <set>
    11 #include <map>
    12 #include <list>
    13 #include <iomanip>
    14 #include <vector>
    15 #pragma comment(linker, "/STACK:1024000000,1024000000")
    16 #pragma warning(disable:4786)
    17 
    18 using namespace std;
    19 
    20 const int INF = 0x3f3f3f3f;
    21 const int MAX = 1000000 + 10;
    22 const double eps = 1e-8;
    23 const double PI = acos(-1.0);
    24 
    25 int a[MAX];
    26 
    27 int main()
    28 {
    29     int i , j ;
    30     memset(a , 0 , sizeof(a));
    31     a[1] = 1; a[0] = 1;
    32     for(i = 2;i <= sqrt(MAX);i++)
    33     {
    34         if(a[i] == 0)
    35             for(j = i * i;j <= MAX;j += i)
    36                 a[j] = 1;
    37     }
    38     int n,m;
    39     scanf("%d",&n);
    40     while(n--)
    41     {
    42         scanf("%d",&m);
    43         int t = abs(m);
    44         for(i = t;i < MAX;i++)
    45             if(!a[i] && !a[i - t])
    46             {
    47                 if(m > 0)
    48                 {
    49                     printf("%d %d
    ",i,i - t);
    50                     break;
    51                 }
    52                 else
    53                 {
    54                     printf("%d %d
    ",i - t,i);
    55                     break;
    56                 }
    57             }
    58         if(i == MAX)
    59             printf("FAIL
    ");
    60     }
    61     return 0;
    62 }
    View Code
  • 相关阅读:
    word2vector 资料
    回声状态网络(ESN)基础教程
    GBDT:梯度提升决策树
    B-树,B+树,B*树详解
    HTTP权威指南-基础知识
    JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)
    HTML自定义对象与属性探究(谷歌,火狐,IE9浏览器没问题)
    冒泡,setinterval,背景图的div绑定事件,匿名函数问题探究
    JavaScript高级程序设计--表单脚本
    我是跨域的JSONP
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/4467082.html
Copyright © 2011-2022 走看看