• 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
  • 相关阅读:
    python 编码 整理总结
    搜索目录下 匹配文件中 最新的文件 路径
    DIV+CSS实现页面居中
    反射怎样调用另外一个类的私有成员
    ASP.NET中路径相关的一些问题
    相对定位以及父子节点之间的关系
    C#垃圾回收机制
    javascript和html中关于自定义属性的问题
    在C#中使用指针(哈哈,炫吧!)
    jquery中过滤器的应用,实现QQ的TAB效果
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/4467082.html
Copyright © 2020-2023  润新知