zoukankan      html  css  js  c++  java
  • 金山西山居初赛第二场 美素数

    美素数

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0

    Problem Description
      小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识。   问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数。   给定一个区间,你能计算出这个区间内有多少个美素数吗?
     
    Input
    第一行输入一个正整数T,表示总共有T组数据(T <= 10000)。 接下来共T行,每行输入两个整数L,R(1<= L <= R <= 1000000),表示区间的左值和右值。
     
    Output
    对于每组数据,先输出Case数,然后输出区间内美素数的个数(包括端点值L,R)。 每组数据占一行,具体输出格式参见样例。
     
    Sample Input
    3 1 100 2 2 3 19
     
    Sample Output
    Case #1: 14 Case #2: 1 Case #3: 4
     代码:
    // 刚想睡觉,看见群里讨论金山比赛的事,突然记得我报名了= =
    // 然后起来看看发现还有半个小时就结束了= =
    // 一看第一题素数,, 就意识到时水题
    // 在一震盲打之后,调式都不成功= =
    // 后来发现忘记调用函数= =, 好吧
    #include<cstdio>
    #include<iostream>
    #define MAXN 1000010
    using namespace std ;
    bool vi[MAXN] ;
    int ans[MAXN] ;
    void Get()
    {
        int i , j  ;
        for( i = 2 ; i <= MAXN - 9 ; i++)if( !vi[i] )
            for( j = i + i ; j <= MAXN - 9 ; j+= i)
                vi[j] = 1 ;
    }
    int ab( int n )
    {
        int ans = 0 ;
        while( n > 0 )
        {
            ans += n % 10 ;
            n /= 10 ;
        }
        return ans ;
    }
    void Ans()
    {
            ans[1] = 0 ;ans[0] = 0 ;
            int a = 0 ;
            for( int i = 2 ; i <= MAXN - 9 ;i++ )
            {
                if( !vi[i] && !vi[ab(i)])
                    ++a ;
                ans[i] = a ;
            }
    }
    int main()
    {
        int i ,  j, n  ,m , T ;
        cin >> T ; int Case = 0 ;
        Get() ;
        Ans() ;
        while( T-- )
        {
            scanf( "%d%d" , &n , &m ) ;
            printf( "Case #%d: %d\n" , ++Case , ans[m] - ans[n-1] ) ;
        }
    
    }
    

      

  • 相关阅读:
    2020.4.26 resources
    Visual Studio M_PI定义
    12.3 ROS Costmap2D代价地图源码解读_1
    Delphi GDI对象之剪切区域
    用GDI+DrawImage画上去的图片会变大
    简单的GDI+双缓冲的分析与实现
    双缓冲绘图
    C++中的成员对象
    鼠标在某个控件上按下,然后离开后弹起,如何捕获这个鼠标弹起事件
    CStatic的透明背景方法
  • 原文地址:https://www.cnblogs.com/20120125llcai/p/3086271.html
Copyright © 2011-2022 走看看