zoukankan      html  css  js  c++  java
  • 【USACO 1.5.2】回文质数

    【题目描述】

    因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。

    写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;

    【格式】

    INPUT FORMAT:

    (file pprime.in)

    第 1 行: 二个整数 a 和 b .

    OUTPUT FORMAT:

    (file pprime.out)

    输出一个回文质数的列表,一行一个。

    【分析】

    晕,交了3遍才过。(不要鄙视我了==)

    先判断回文数后判断质数。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cmath>
     4 #include <cstring>
     5 #include <algorithm>
     6 #include <queue>
     7 const int Max=10000000;
     8 using namespace std;
     9 long long a,b,ans[Max],point=0;
    10 long long mi[15]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000,10000000000ll};
    11 void work(long long num,long long len);//len代表的数字的长度 
    12 bool prime(long long num);
    13 int main()
    14 {
    15     //文件操作 
    16     freopen("pprime.in","r",stdin);
    17     freopen("pprime.out","w",stdout);
    18     scanf("%lld%lld",&a,&b); 
    19     for (long long i=0;i<=9;i++) 
    20     {
    21         work(i,1);
    22         if (i!=0) work(i*10+i,2);
    23     }
    24     sort(ans,ans+point);
    25     for (long long i=0;i<point;i++) printf("%lld
    ",ans[i]);
    26     return 0;
    27 }
    28 bool prime(long long num)
    29 {
    30      for (long long i=2;i<=(long long)sqrt((double)num)+1;i++) if (num%i==0) return 0;
    31      return 1;
    32 }
    33 void work(long long num,long long len)
    34 {
    35 
    36      if (num>b) return;
    37      if (num>=a && prime(num)) ans[point++]=num;
    38      for (long long i=1;i<=9;i++) 
    39      for (long long j=1;j<=5;j++)
    40      {
    41          if ((len+j*2-1)<=10)
    42          work(num*mi[j]+i+i*mi[len+j*2-1],len+j*2);
    43      }
    44 }
  • 相关阅读:
    2020年MongoDB 企业应用实战 基础 复制集 分片集群
    2020年Redis5.0 从入门到企业应用实战
    2020年Jumpserver1.5.8企业生产部署指南
    python单例与数据库连接池
    python 异常处理
    python 正则
    python 多线程
    python 队列
    python 闭包与装饰器
    程序员面试资源集锦
  • 原文地址:https://www.cnblogs.com/hoskey/p/3787701.html
Copyright © 2011-2022 走看看