P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)
技巧:就是偶数位的回文数字一定不是质数---------证明:奇数位之和sum1==偶数位之和sum2的数字可以被11整除。(11除外,这是一个坑点)
最高位,最低位必须是 1, 3, 7, 9
暴力枚举:也就是说,直接枚举奇数位(1,3,5,7)就可以了。至于回文嘛,除去最高位和最低位,也最多是枚举3位数字,时间复杂度在10^3.不管怎么说还是暴力的起的。
线性筛:就是用于判断最后枚举的数字是不是质数的,注意,还是要把质数的范围取大一点。根据质数在后面越来越少的概率图,大家,可以随便定个范围。
最开始,是筛的1000以内的质数,但是,错了很多,所以筛了10000以内的就过了。
ac代码:
#include<iostream>
using namespace std;
const int N = 1e4;
int prime[N], sum, r, l;
bool vis[N];
bool is_prime[N];
int a[] = { , , , };
int kk[] = { , ,};
int Prime(int n = N){
int cnt = ;
for (int i = ; i <= n; ++i)
{
if (!vis[i]){
prime[cnt++] = i;
is_prime[i] = ;
}
for (int j = ; j < cnt&&i*prime[j] <= n; ++j)
{
vis[i*prime[j]] = ;
if (i%prime[j] == )break;
}
}
return cnt;
} bool f(int x){
if (x < N)return is_prime[x];
else{
for (int i = ; i < sum; ++i){
if (x%prime[i] == )return ;
}
}
return ;
} void DFS(){
int num;
for (int i = ; i <= ;++i)
if (kk[i] >= l&&kk[i] <= r)cout << kk[i] << endl;
if (r / ){
for (int i = ; i <= ; ++i){
for (int j = ; j <= ; ++j){
num = a[i] * + j * + a[i];
if (num>=l&&num<=r&&f(num))cout << num << endl;
}
}
}
if (r / ){
for (int i = ; i <= ; ++i){
for (int a1 = ; a1 <= ;++a1)
for (int a2 = ; a2 <= ; ++a2){
num = a[i] * + a1 * + a2 * + a1 * + a[i];
if (num >= l&&num <= r&&f(num))cout << num << endl;
}
}
}
if (r / ){
for (int i = ; i <= ; ++i){
for (int a1 = ; a1 <= ; ++a1)
for (int a2 = ; a2 <= ; ++a2)
for (int a3 = ; a3 <= ;++a3){
num = a[i] * + a1 * + a2 * +a3*+a2* + a1 * + a[i];
if (num >= l&&num <= r&&f(num))cout << num << endl;
}
}
}
} int main(){
sum = Prime();
cin >> l >> r;
DFS();
}
P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)的更多相关文章
- P1217 [USACO1.5]回文质数 Prime Palindromes(求100000000内的回文素数)
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- luogu P1217 [USACO1.5]回文质数 Prime Palindromes x
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes【取回文数/数论/字符串】
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(stringstream,sizeof(num)/sizeof(num[0]),打表)
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)( 一亿)间 ...
- (函数)P1217 [USACO1.5]回文质数 Prime Palindromes
题解: 第一次: 算法复杂度过高,导致编译超时,需要优化 #include<stdio.h>#include<math.h>int a[100000001] = { 0 };i ...
- Java实现 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
import java.util.Scanner; public class Main { private static Scanner cin; public static void main(St ...
- [USACO1.5]回文质数 Prime Palindromes
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
随机推荐
- webpack4 系列教程(十二):处理第三方JavaScript库
教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十二):处理第三方 JavaScript 库>原文地址.或者来我的小站看更多内容:godbm ...
- Js 转动抽奖实现
一.样本 地址:http://js.zhuamimi.cn/choujiang/index.htm 源码:https://pan.baidu.com/s/15KhesfcLf1WMOom6PhzCjA ...
- Django之模板
Django模板系统 官方文档 常用语法 Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ ...
- Spider-five
一.Scrapy框架 1. Scrapy框架主要组成 a. Scrapy三个对象: request请求对象.response响应对象.item数据对象(字典) b. Scrapy五个核心组件: Spi ...
- loj#2049. 「HNOI2016」网络(set 树剖 暴力)
题意 题目链接 Sol 下面的代码是\(O(nlog^3n)\)的暴力. 因为从一个点向上只会跳\(logn\)次,所以可以暴力的把未经过的处理出来然后每个点开个multiset维护最大值 #incl ...
- 苹果手机如何投屏到win10电脑上
苹果手机中的IOS系统比安卓系统的确好用.苹果手机使用多久都不会出现手机卡顿的现象,一如既往的流畅自如,这就是人们追求苹果机的原因之一.苹果手机朋友们可能会觉得手机屏幕太小影响视觉怎么办,苹果手机如何 ...
- tomcat闪退解决
异常原因:拷贝了一个tomcat到新机器上,运行startup闪退 解决方法: 1.检查发现当前系统没有安装配置jdk,安装配置后运行仍然闪退 2.在tomcat的启动脚本和关闭脚本中指定JDK和to ...
- Salesforce 应用生命周期管理
应用程序生命周期管理 一个Salesforce系统可以有多个版本,最常见的有: production版本:终端用户实际使用的版本 sandbox版本:沙盒环境,用于开发.测试等 在对Salesforc ...
- Foundry feats. MultiverseStudio
https://www.foundry.com/news-awards/foundry-jcube-announcement 经过这么多年的过程,本周本产品终于发布了PR,这次是由Foundry独家代 ...
- DOM对象和window对象
本文内容: DOM对象 Window 对象 首发日期:2018-05-11 DOM对象: DOM对象主要指代网页内的标签[包括整个网页] 比如:document代表整个 HTML 文档,用来访问页面中 ...