洛谷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 堆上取 ...
随机推荐
- Cocos2d-x发布Android.mk 导入所有cpp
#traverse all the directory and subdirectorydefine walk $(wildcard $(1)) $(foreach e, $(wildcard $(1 ...
- 01_Spring入门程序
一.什么是Spring? 1.Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 2.spring是一个高度灵活的轻量级框架,其目的是降低企业级应用开发的复杂度. ...
- Odoo Documentation : Environment
Environment The Environment stores various contextual data(上下文数据 ) used by the ORM: the database cur ...
- SpringMVC,3种不同的URL路由配置方法 [转]
SpringMVC中配置URL拦截,非常简单.网上找个示例,就能通过.但是,在我做了好几个Web项目,又参与了别人主导的Web项目时,发现URL配置也非常有学问. 1. 先说说一种比较常见的: < ...
- PhoneInfoga---用于电话号码的信息收集和OSINT侦察工具
PhoneInfoga 是仅使用免费资源扫描电话号码的最先进工具之一. 目标是首先在任何国际电话号码上收集标准信息, 如国家,地区,运营商和线路类型,并且准确性非常高. 然后在搜索引擎上搜索足迹以尝试 ...
- IO流 输入和输出文档内容
package io; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io. ...
- 011-python列表,元组,字典的用法
1.列表 1.1 列表截取 list[头下标:尾下标:步长],例如:L[1:10:2] >>> L [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>& ...
- 2019-7-2-Roslyn-开发-NuGet-包的-Task-编译可能遇到的问题
title author date CreateTime categories Roslyn 开发 NuGet 包的 Task 编译可能遇到的问题 lindexi 2019-07-02 10:43:2 ...
- Luogu P2864 [USACO06JAN]树林The Grove(bfs)
P2864 [USACO06JAN]树林The Grove(bfs) 题面 题目描述 The pasture contains a small, contiguous grove of trees t ...
- loj2322 「清华集训 2017」Hello world!
https://loj.ac/problem/2322 先吐槽一下,sb数据毁我青春败我前程. 首先,一个数开根开不了多少次. 当我们把它开到1的时候,我们以后就不需要开他了,我们可以利用并查集跳过他 ...