11周(回文+ 素数)

/*

*copyright(c) 2014,烟台大学计算机学院

*All rights reserved。

*文件名称:测试控制符号

*作者:王忠

*完成日期:2014.10.30

*版本号:v1.0

*

*问题描述:输出1000以内既是回文数又是素数的数

*输入描述:

*程序输出:输出1000以内既是回文数又是素数的数

#include <iostream>
using namespace std;
bool isPalindrome(int);
bool isPrimer(int);
int main()
{
    for(int m=2;m<=1000;++m)
    if(isPalindrome(m)&&isPrimer(m))
        cout<<m<<"  ";
    return 0;
}
bool isPalindrome(int n)
{
    int s=0,r,x=n;
    while (x>0)
    {
        r=x%10;
        s=s*10+r;
        x=x/10;
    }
    return(s==n);
}
bool isPrimer(int x)
{
    bool result =true;
    for(int i=2;i*i<=x;i++)
    {
        if(x%i==0)
        {
            result = false;
            break;
        }
    }
    return result;
}

时间: 2024-11-06 01:24:23

11周(回文+ 素数)的相关文章

算法15---数论6---素数,回文素数 分解质因素

算法15---数论6---素数,回文素数  分解质因素 1 /* 2 题目:素数,回文素数 3 author taoliu——alex 2016.10 number4 4 5 主要实现: 6 判断素数,判断回文素数 7 */ 8 9 10 11 #include <stdio.h> 12 #include <math.h> 13 14 15 16 //素数 17 18 19 int isprime(int a) 20 { 21 for (int i = 2; i < a; i

C++刷题——2704: 回文素数

2704: 回文素数 /* Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 5 月 26 日 * 版 本 号:v1.0 */ Description 输入一个数n,输出n以内所有的回文素数.回文素数,即既是素数,又是回文数,从前往后.从后往前看一个样.例373. Input 大于10的正整数n Output n以内所有的回文素数 Sample Input 500

HDU 1431 素数回文(回文素数)

http://acm.hdu.edu.cn/showproblem.php?pid=1431 题意: 给你两个整数a,b.(5 <= a < b <= 100,000,000)要你按顺序输出[a,b]区间内的所有回文素数. 分析: 定理:如果一个数是回文且有偶数位,那么它能被11整除. 根据上面定理我们可知我们只需要找到区间[2,1000W)内的素数即可.(想想为什么)上面b的范围直接缩小了10倍. 剩下的工作就是用筛选法求出1000W内的所有素数,然后对于给定的a和b,我们对于[a,b

HDU 1431 素数回文(打表+技巧,最大回文素数为9989899!!!)

素数回文 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17512    Accepted Submission(s): 4033 Problem Description xiaoou33对既是素数又是回文的数特别感兴趣.比如说151既是素数又是个回文.现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a

暑假集训7.11 字符串回文暴力

#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; #define MM(a,b) memset(a,b,sizeof(a)); const double eps = 1e-10; const int i

poj3247:回文素数

总时间限制: 5000ms 内存限制: 65536kB 描述 一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数.给定位数n,找出所有既是回文数又是素数的n位十进制数.(注:不考虑超过整型数范围的情况). 输入 位数n,其中1<=n<=9. 输出 第一行输出满足条件的素数个数. 第二行按照从小到大的顺序输出所有满足条件的素数,两个数之间用一个空格区分. 样例输入 1 样例输出 4 2 3 5 7 这道题挺简单的,本来自己是肯定能够想到平方

回文素数-2015校内选拔第三题

10301是个5位的素数.它有个特点,把数字倒过来还是它本身,具有这样特征的素数,我们称之为:回文素数. 105011060111311 这些都是5位的回文素数. 请你计算一下,像这样的5位数的回文素数,一共有多少个? 请填写这个表示个数的整数,注意不要写任何其它多余的内容,比如说明或解释文字,也不要列出所有的回文素数. 原文地址:https://www.cnblogs.com/jinyufanfan/p/10105434.html

一亿以内的回文素数

题意分析:求给定区间内的质数回文数题目分析:1.多组测试数据,所以先打表.2.先求质数再判断回文,效率低下:所以先构造回文数,再判断质数.3.偶数位的回文数都能被11整除,自己证明去.所以,偶数位的回文数除了11都是合数.4.一个k位数,可以构造出一个奇数位的回文数.比如13,可以构造131:189可以构造18981.所以100000000内的只要从1构造到9999即可.5.若范围为1000000000,那么明显超出int范围,要用long long.当然此题无此陷阱.6. 最后按从小到大的顺序

Codeforces Round #315 -Primes or Palindromes?(回文&amp;&amp;素数)

题目地址:Primes or Palindromes? 题意:给出p,q,A=p/q,求找出最大的n使得n以内的素数的个数<=A*n以内的回文串的个数. 思路:其实就是n以内的素数的个数*q<=n以内的回文串的个数*p.然而p/q的最大值为42,那么数到13000000就到达极限,所以我们直接可以从大的开始往小的一步一步的暴力枚举就可以(感觉窝还是太年轻..QAQ #include <stdio.h> #include <math.h> #include <str