洛谷P2667 超级质数 [2017年6月计划 数论05]
P2667 超级质数
题目背景
背景就是描述,描述就是背景。。。。。。
题目描述
一个质数如果从个位开始,依次去掉一位数字,两位数字,三位数字。。。。。。直到只剩一位数字中间所有剩下的数都是质数,则称该质数为一个超级质数。例如:2333是一个质数,因为2333,233,23,2都是质数,所以2333是一个四位超级素数。请你写一个程序,给定一个整数X,求大小小于X的超级质数。
输入输出格式
输入格式:
一行,给出一个整数X(1<=X<=100000000).
输出格式:
第一行,一个整数k,表示X以内超级质数的个数.
第2至k+1行,每行一个整数,输出所有X以内的超级质数,这些数按从小到大的顺序排列。
输入输出样例
100
13
2
3
5
7
23
29
31
37
53
59
71
73
79
说明
对于30%的数据,X<=1000。
对于100%的数据,X<=100000000。
最后一道数学水题了。
#include <bits/stdc++.h>
const int INF = 0x3f3f3f3f;
inline void read(long long &x)
{
x = ;char ch = getchar();char c = ch;
while(ch < '' || ch > '')c = ch, ch = getchar();
while(ch <= '' && ch >= '')x = x * + ch - '',ch = getchar();
if(c == '-')x = -x;
} long long x; long long a; bool IsPrime(long long k)
{
long long a = sqrt(k);
for(int i = ;i <= a;i ++)
{
if(k % i == )
{
return false;
}
}
return true;
} long long prime[]; long long num[];
int head,tail;
int main()
{
read(x);
if(x < ){printf("");return ;}
if(x < ){printf("1\n2");return ;}
if(x < ){printf("2\n2\n3");return ;}
if(x < ){printf("3\n2\n3\n5");return ;}
if(x < ){printf("4\n2\n3\n5\n7");return ;}
head = ;
tail = ;
prime[] = ;
prime[] = ;
prime[] = ;
prime[] = ;
num[] = ;
num[] = ;
num[] = ;
num[] = ;
while(head <= tail)
{
for(int i = ;i <= ;i ++)
{
long long tmp = prime[head] * + num[i];
if(tmp <= x && IsPrime(tmp))
{
prime[++tail] = tmp;
}
if(tmp > x)goto L1;
}
head ++;
}
L1:
printf("%d\n", tail);
for(int i = ;i <= tail;i ++)
{
printf("%d\n", prime[i]);
}
return ;
}
洛谷P2667 超级质数 [2017年6月计划 数论05]的更多相关文章
- 洛谷P1890 gcd区间 [2017年6月计划 数论09]
P1890 gcd区间 题目描述 给定一行n个正整数a[1]..a[n]. m次询问,每次询问给定一个区间[L,R],输出a[L]..a[R]的最大公因数. 输入输出格式 输入格式: 第一行两个整数n ...
- 洛谷P1855 榨取kkksc03 [2017年4月计划 动态规划 09]
P1855 榨取kkksc03 题目描述 洛谷的运营组决定,如果一名oier向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有20个或以上的成员,上传10道以上的私有题目,布置过一次作业 ...
- 洛谷P3459 [POI2007]MEG-Megalopolis [2017年6月计划 树上问题02]
[POI2007]MEG-Megalopolis 题目描述 Byteotia has been eventually touched by globalisation, and so has Byte ...
- 洛谷P2327 [SCOI2005]扫雷 [2017年5月计划 清北学堂51精英班Day1]
P2327 [SCOI2005]扫雷 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一 ...
- 洛谷P1002 过河卒 [2017年4月计划 动态规划15]
P1002 过河卒 题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之 ...
- 洛谷P2426 删数 [2017年4月计划 动态规划12]
P2426 删数 题目描述 有N个不同的正整数数x1, x2, ... xN 排成一排,我们可以从左边或右边去掉连续的i(1≤i≤n)个数(只能从两边删除数),剩下N-i个数,再把剩下的数按以上操作处 ...
- 洛谷P1968 美元汇率[2017年4月计划 动态规划02]
P1968 美元汇率 题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能 ...
- 洛谷P2429 制杖题 [2017年6月计划 数论10]
P2429 制杖题 题目描述 求不大于 m 的. 质因数集与给定质数集有交集的自然数之和. 输入输出格式 输入格式: 第一行二个整数 n,m. 第二行 n 个整数,表示质数集内的元素 p[i]. 输出 ...
- 洛谷P1368 均分纸牌(加强版) [2017年6月计划 数论14]
P1368 均分纸牌(加强版) 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,纸牌总数必为 N 的倍数.可以在任一堆上取1张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取 ...
随机推荐
- 服务器重启,自动重启httpd
1. 手动重启 cd http ll cd /etc/httpd/ ll service httpd restart 2. 查看服务器内存使用情况 df -h 3. 自动重启 cat /etc/i ...
- System.Web.Mvc.ViewResult.cs
ylbtech-System.Web.Mvc.ViewResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicK ...
- FreeMarker 自定义 TemplateDirectiveModel(一)
FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker 与 Web 容器无关,即在 Web 运行时,它并不知道 Servlet 或 HTTP.它不 ...
- 事件处理器v-on:(event)/@(event)
<!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...
- JSON高亮格式化页面显示
高亮CSS定义: <style type="text/css"> pre {outline: 1px solid #ccc; padding: 5px; margin: ...
- ES6之主要知识点(七)对象
1.属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. function f(x, y) { return {x, y}; } // 等同于 function ...
- O(N)求出1~n逆元
这是一个黑科技. 可以将某些题目硬生生地压到O(N) 不过这求的是1~n的逆元,多了不行-- 结论 接下来放式子: inv[i]=(M-M/i)*inv[M%i]%M; 用数学方法来表示: i−1=( ...
- vue 学习 一
1.实例: var vm = new Vue({ el: '#example', data: { a:1 }, created: function () { // `this` 指向 vm 实例 co ...
- EasyUI Tree与Datagrid联动
效果图 这是一个简单的solr检索的例子 输入关键词,显示树 选择一个节点,得到该节点下文档信息 代码: JSP: 重点是标红的URL传递 <body> <d ...
- c++容器的操作方法总结
一.map 1.创建 typedef map<int,string> descrbe_map_; descrbe_map_ devMap; 或者 map<string,string& ...