特殊的质数

Problem:1151

Time Limit:1000ms

Memory Limit:65535K

Description

如果一个数是质数,而且他在质数表中的编号也是质数,称为特殊的质数。比如质数表中第7个质数是17,因为7和17都是质数,所以我们称17是特殊的质数;比如第10个质数是29,因为10不是质数,所以29不是特殊的质数。现给定非负整数n,求<=n的最大的特殊的质数。

Input

多组输入数据n(0<=n<=10^6)。

Output

输出小于等于n的最大的特殊的质数,对于给定的n如果不存在这样的质数,输出-1。

Sample Input

0
20
50
60

Sample Output

-1
17
41
59

Hint

 

Source

#include <iostream>
#include <string.h>
using namespace std;
#define maxn 1000100
int i,j,n,m,a[maxn],b[maxn],k=;
void getprime() //素数打表获取素数
{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
b[]=;
for(i=;i<maxn;i++)
{
if(!b[i])
{
a[k++]=i;
for(j=i+i;j<maxn;j+=i)
b[j]=;
}
}
}
int main()
{
getprime();
while(cin>>n)
{
if(n<)
{
cout<<-<<endl;
continue;
}
int flag=;
for(i=;i<k;i++)
{
if(!b[i]) //是特殊的质数
{
if(a[i]<=n) //标记前一个
flag=a[i]; //不能直接输出 最后一个特殊的质数跑不到else里面去
else
break; //注意这里一定不能在else里面输出,因为最后一个特殊的质数跑不进else里面
              //监堂的时候用生成器发现了这个错误,1000组输入999组输出
              //若想在else里面输出,把maxn改成2000100
}
}
cout<<flag<<endl;
}
/*for(i=1;i<20;i++)
{
if(!b[i])
cout<<"特殊的质数:";
else
cout<<" ";
cout<<"i:"<<i<<" "<<a[i]<<endl;
}*/
return ;
}

NEFU 1151 特殊的质数的更多相关文章

  1. BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 4436  Solved: 1957[Submit][Status][Discuss ...

  2. [LeetCode] Count Primes 质数的个数

    Description: Count the number of prime numbers less than a non-negative number, n click to show more ...

  3. 为什么质数检验到 N的开方 就可以结束了

    以为所有N的除数都是以根号N为轴对称的. 例如16的开方为4: 16%1 == 0 则1 与 16 都是16的除数. 16%2 == 0 则2 与 8 都是16的除数. 16%4 ==0 则4 为16 ...

  4. 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法

    今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...

  5. PHP面试题之实现输出100以内的质数

    最近求职时的其中一道面试题: 求100之内的质数 <? //求100以内质数 for ($i = 1; $i <= 100; $i++) { $k = 0; for ($j = 1; $j ...

  6. shell统计指定范围内的所有质数以及它们的和

    #!bin/bash a= $) ;do n= $x);do ];then n=$[$n+] fi done ];then { echo -n -e "$x\t" sum=$[$s ...

  7. CNUOJ 0486 800401反质数

    难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g ...

  8. NOI 1.5 44:第n小的质数

    ---恢复内容开始--- 描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29 方法1:合数一定可以表示成一个比它小的 ...

  9. 求第N个质数算法

    用python求从1开始第1000个质数? 质数:只能被1和它本身整除的数.那好,我们开始写程序(一个小算法). def calc_prime(prime,num): i,gab=7,2 while ...

随机推荐

  1. 洛谷P1134 阶乘问题

    题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001, ...

  2. myeclipse 部署应用

    昨天把MyEclipse10给安装上了,今天想在MyEclipse下启动Tomcat并在浏览器中看到写的Web页面,但是当在浏览器中输入地址时,出现了404错误,出现这个错误的原因是因为没有找到指定的 ...

  3. 获取Trustedinstalled权限.reg

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*\shell\runas] @="获取TrustedInstaller权限&q ...

  4. (转)google Java编程风格中文版

    转:http://www.hawstein.com/posts/google-java-style.html 目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 ...

  5. Appserv环境下搭建的PHP环境升级PHP版本(支持微信端口以及thinkphp)

      Appserv 2.5.10 升级PHP from version 5.2 to 5.3 最近,在使用Appserv 2.5.10 中的PHP开发微信时,遇到下面错误 Fatal error  C ...

  6. hdu 2047 阿牛的EOF牛肉串

    如果末尾加的是E或F,显然是2*a[i-1] 如果末尾加的是O,则末2位一定是EO或FO,则为2*a[i-2]. 然后两者相加 2*a[i-1]+2*a[i-2] = 2*(a[i-1]+a[i-2] ...

  7. rsyslog 与 logrotate 服务

    rsyslog与logrotate服务 rsyslog 负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件. 一.rsyslog rsyslog 是一个 syslogd 的多线 ...

  8. Linux SSH安全策略限制IP登录方法(转)

    本文介绍了Linux SSH安全策略限制IP登录的两种方法.具体如下: 方法一: 首先需要限制登录的ip(或者如果需要自己本地登录,查看最后登录ip即可) Vim /etc/hosts.allow 输 ...

  9. 数据库的模糊查询mybatis

    <!-- oracle --> <select id="searchUserBySearchName" parameterType="java.lang ...

  10. ASP.NET 5 :上传文件(转)

    (此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:在ASP.NET 5(MVC 6)中处理上传文件的方式和之前有所不同. 在MVC 5之前的版本中上传文件, ...