luogu P1217 [USACO1.5]回文质数 Prime Palindromes x
P1217 [USACO1.5]回文质数 Prime Palindromes
题目描述
因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;
输入输出格式
输入格式:
第 1 行: 二个整数 a 和 b .
输出格式:
输出一个回文质数的列表,一行一个。
输入输出样例
5 500
5
7
11
101
131
151
181
191
313
353
373
383
说明
Hint 1: Generate the palindromes and see if they are prime.
提示 1: 找出所有的回文数再判断它们是不是质数(素数).
Hint 2: Generate palindromes by combining digits properly. You might need more than one of the loops like below.
提示 2: 要产生正确的回文数,你可能需要几个像下面这样的循环。
题目翻译来自NOCOW。
USACO Training Section 1.5
产生长度为5的回文数:
for (d1 = 1; d1 <= 9; d1+=2) { // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++) {
for (d3 = 0; d3 <= 9; d3++) {
palindrome = 10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1;//(处理回文数...)
}
}
}
思路:
如题。
代码:
#include <iostream>
#include <cstdio>
#include <cmath> using namespace std; const int N = 1e8 + ;
const int M = 6e7;
int a,b; int pd(int x)
{
if(x==||x==) return ;
if(x%== || x==) return ;
int j=;
while(j<=sqrt(x)&&x%j!=) j+=;
if(x%j==) return ;
else return ;
} void get_hui()
{
int num;
int aa=a;
while(aa<)
{
if(pd(aa) && aa>=a) printf("%d\n",aa);
aa++;
}
for(int i=;i<=;i+=)
{
num=i*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
num=i*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
num=i*+j*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
num=i*+j*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
num=i*+j*+k*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
for(int w=;w<=;w++)
{
num=i*+j*+k*+w*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
for(int w=;w<=;w++)
{
num=i*+j*+k*+w*+w*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
}
} int main()
{
scanf("%d%d",&a,&b);
get_hui();
return ;
}
luogu P1217 [USACO1.5]回文质数 Prime Palindromes x的更多相关文章
- 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 是回文质数. 写一个程序来找 ...
- 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(技巧+暴力枚举+线性筛)
技巧:就是偶数位的回文数字一定不是质数---------证明:奇数位之和sum1==偶数位之和sum2的数字可以被11整除.(11除外,这是一个坑点) 最高位,最低位必须是 1, 3, 7, 9 暴力 ...
- (函数)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 ...
随机推荐
- 初学node.js-nodejs中实现用户注册路由
经过前面几次的学习,已经可以做下小功能,今天要实现的事用户注册路由. 一.users_model.js 功能:定义用户对象模型 var mongoose=require('mongoose'), S ...
- java保留2位或n位小数
1.直接使用字符串处理 double ds = Double.valueOf(String.format("%.3f", Math.random()).toString()); 这 ...
- python+selenium浏览器截图
from selenium import webdriverfrom time import sleep driver = webdriver.Firefox() # 指定和打开浏览器driver.g ...
- Flask框架(一)—— Flask简介
Flask框架(一)—— Flask简介 目录 Flask框架介绍 一.Flask简介 二.flask安装与使用 1.安装 2.使用 3.简单案例——flask实现用户登录 Flask框架介绍 一.F ...
- 安装OpenStack计算服务(nova)
1. 配置数据库 数据库安装在控制节(controller)点上 $ mysql -u root -p 2.创建 glance 数据库 CREATE DATABASE nova; GRANT ALL ...
- Linux/Unix下pid文件作用浅析
转载:http://blog.csdn.net/changli_90/article/details/8911191 在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件.而 ...
- nginx下载安装和虚拟机的配置
一. Nginx下载安装 1.Nginx下载:nginx-1.13.0.tar.gz,下载到:/usr/local/software/ wget http://nginx.org/download/n ...
- 【nginx】上传文件error报413 Request Entity Too Large
nginx配置增大上传文件限制 如果访问地址是通过nginx转发配置的 server{ ... ... client_max_body_size 50M; ... ... } ingress配置增大上 ...
- 为什么你不看好家教O2O
伴随着科技的不断进步,大众创业的激情在不断的燃烧着,于是又很多的朋友会往家教这条路上走.就有了家教O2O的出现,很多的人都在抢占市场,可是,为什么你不看好家教O2O? 家教O2O虽然能够帮助附近的朋友 ...
- MFC学习笔记1---准备工作
什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程 ...