特殊的质数

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. 学习笔记--(平衡树)splay

    坑爹的splay,毁我青春,耗我钱财,颓我精力 是一种用于保存有序集合的简单高效的数据结构.伸展树实质上是一个二叉查找树.允许查找,插入,删除,删除最小,删除最大,分割,合并等许多操作,这些操作的时间 ...

  2. BZOJ-4300 绝世好(蛋疼)题 DP(递推)

    翻zky学长的blog时翻出来的..... 4300: 绝世好题 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 736 Solved: 393 [Sub ...

  3. 【bzoj2463】 谁能赢呢?

    www.lydsy.com/JudgeOnline/problem.php?id=2463 (题目链接) 题意 一个n*n的棋盘,开始时左上角有一个棋子,每次可以把棋子向4个方向移动,但不能移动到曾经 ...

  4. POJ3169 Layout

    Description Like everyone else, cows like to stand close to their friends when queuing for feed. FJ ...

  5. PHP 数据库驱动、连接数据不同方式学习笔记

    相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.ph ...

  6. git使用记录

    唔,git有本地版本管理功能,所以,这个完全是可以拿来自己做版本管理的.所以有必要学习一下,另外,在oschina上开了个账户,用来管理自己一些代码,也是增加自己学习git的动力. 1. 使用clon ...

  7. (Beta)Let's-版本发布说明

      Let's App(Beta)现已隆重上市   GIT源码请戳此处 版本的新功能 我们在这一版本对于项目的规划目标主要集中在三个方面——预约用户观感,完善功能链条,改善用户体验 界面 首先,在β阶 ...

  8. 轻量级应用开发之(07) UIPickerView使用

    #import "ViewController.h" @interface ViewController ()<UIPickerViewDataSource,UIPicker ...

  9. 嵌入式实时操作系统μCOS原理与实践任务控制与时间的解析

    /*************************************************************************************************** ...

  10. java链接到mysql

    原文出自 http://qq163230530.blog.163.com/blog/static/4289250620081186262719/ eclipse 下载安装后 新建web项目 首先配置服 ...