zoukankan      html  css  js  c++  java
  • nyoj 24-素数距离问题 (素数算法)

    24-素数距离问题


    内存限制:64MB 时间限制:3000ms Special Judge: No
    accepted:21 submit:71

    题目描述:

    现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
    如果输入的整数本身就是素数,则输出该素数本身,距离输出0

    输入描述:

    第一行给出测试数据组数N(0<N<=10000)
    接下来的N行每行有一个整数M(0<M<1000000),

    输出描述:

    每行输出两个整数 A B.
    其中A表示离相应测试数据最近的素数,B表示其间的距离。

    样例输入:

    3
    6
    8
    10

    样例输出:

    5 1
    7 1
    11 1

    分析:
      直接根据素数算法判断待判断的数据是否为素数

    核心代码:
    1 bool is_prime(int n)
    2 {
    3     if(n <= 1) return false;
    4     for(int i = 2; i <= sqrt(n); ++ i)
    5         if(n%i == 0) return false;
    6     return true;
    7 }

    C/C++代码实现(AC):

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cmath>
     4 #include <cstring>
     5 #include <cstdio>
     6 #include <queue>
     7 #include <set>
     8 #include <map>
     9 #include <stack>
    10 
    11 using namespace std;
    12 
    13 bool is_prime(int n)
    14 {
    15     if(n <= 1) return false;
    16     for(int i = 2; i <= sqrt(n); ++ i)
    17         if(n%i == 0) return false;
    18     return true;
    19 }
    20 
    21 int main ()
    22 {
    23     int t;
    24     scanf("%d", &t);
    25     while(t --)
    26     {
    27         int a, l, r;
    28         scanf("%d", &a);
    29         if (is_prime(a))
    30         {
    31             printf("%d 0
    ", a);
    32             continue;
    33         }
    34         for(int i = 1; ; ++ i)
    35         {
    36             if(is_prime(a - i))
    37             {
    38                 printf("%d %d
    ", a-i, i);
    39                 break;
    40             }
    41             if(is_prime(a + i))
    42             {
    43                 printf("%d %d
    ", a+i, i);
    44                 break;
    45             }
    46         }
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    nginx 部署
    win 7 系统ie浏览器升级11版本后,f12功能不可用的问题
    selenium 调用键盘按键
    selenium + python 环境搭建
    解决word2013老是打开未响应情况
    win7 64位备份时, 无法启动服务,0x80070422
    个人学习网站收集
    矩形后旋转后顶点坐标的求解
    Acrobat_8_Pro_SC 激活老是提示你输入的授权码无效
    DLL用def定义文件来导出重载函数(转)
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/9065333.html
Copyright © 2011-2022 走看看