zoukankan      html  css  js  c++  java
  • poj2928:素数回文数的个数

    总时间限制: 1000ms 内存限制: 65536kB
    描述
    判断11到任何一个小于1000大于11的整数之间,既是素数又是回文数的整数的个数。
    
    输入
    输入大于11小于1000的整数。
    输出
    11到输入的这个数之间的既是素数又是回文数的个数。
    样例输入
    999
    543
    样例输出
    16
    10
    提示
    测试数据有多组,用while()循环输入。
    回文数即为左右对称的数,如:292333

    本题数据规模不大,可以直接先把素数标记出来再进行判断。

    代码如下

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    
    int f[1000]={0};
    int coun = 0;
    
    void init()
    {
        for(int i = 2; i < 1000; i++)
        {
            if(f[i] == 0)
            {
                for(int j = i+i; j < 1000; j+=i)
                {
                    f[i] = 1;
                }
            }
        }
    }
    
    
    
    int main()
    {
        init();
        int n;
        int coun = 0;
        while(cin>>n)
        {
            coun = 0;
            for(int i = 11; i < n; i++)
            {
                if(f[i] == 0)
                {
                    if(f[i]/100 == 0)
                    {
                        if(i%10 == i/10)
                            coun++;
                    }
                    else
                    {
                        if(i%10 == i/100)
                            coun++;
                    }
                }
            }
            cout<<coun<<endl;
        }
        return 0;
    }
  • 相关阅读:
    volatile关键字解析(转载)
    php
    FFT快速傅立叶变换
    高次不定方程BSGS算法
    BSGS-BabyStepGiantStep算法+拓展
    Java-数组-面向对象
    Java基础-方法(2)和数组
    Java基础-循环(2)和方法
    Java基础-循环结构
    Java基础-运算符
  • 原文地址:https://www.cnblogs.com/xiaoshen555/p/3850067.html
Copyright © 2011-2022 走看看