zoukankan      html  css  js  c++  java
  • 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。

    思路:题目需要实现的功能非常简单,但需要注意的是该题目有“高性能”的tag,这意味着在时间或空间方面有所要求,实现起来要注意优化。素数筛选可以使用欧拉线筛或埃式线筛。

    Code

    #include <bits/stdc++.h>
    #include <algorithm>
    #define PI 3.141593
    #define INF 0x3f3f3f3f
    #define Best 0x7fffffff
    #define _CRT_SECURE_NO_WARNINGS
    
    using namespace std;
    
    const int M = 2e8 + 5;
    bool S(long long int num) {
    	if (num <= 3) {
    		return num > 1;
    	}
    	if (num % 6 != 1 && num % 6 != 5) {
    		return 0;
    	}
    	int b = (long long int)sqrt(num);
    	for (int i = 5; i <= b; i += 6) {
    		if (num % i == 0 || num % (i + 2) == 0) {
    			return 0;
    		}
    	}
    	return 1;
    }
    
    bool H(long long int num) {
    	long long int temp, sum = 0;
    	temp = num;
    
    	while (temp != 0) {
    		sum = sum * 10 + temp % 10;
    		temp = temp / 10;
    	}
    	if (sum == num && num > 0)
    	{
    		return 1;
    	}
    	else
    	{
    		return 0;
    	}
    }
    
    int main() {
    	long long int a[M], n = 0, s = 0, b, c;
    	cin >> b >> c;
    	for (long long int i = b; i <= c; i++) {
    		a[i] = i;
    		if (a[i] == 10000000)
    			break;
    		if (H(a[i]) == 1 && S(a[i]) == 1) {
    			n++;
    			cout << a[i] << endl;
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    Flask程序相关配置加载的三种方式
    Redis数据库在windows系统下的安装及使用
    Redis数据库介绍
    python中模块的制作
    4.ORM框架的查询
    3.ORM框架一对多的关系及使用
    2.ORM框架添加,修改,删除操作
    1.ORM介绍,基本配置及通过ORM框架创建表
    4.集合
    3.字典
  • 原文地址:https://www.cnblogs.com/RpgMaker/p/13605489.html
Copyright © 2011-2022 走看看