zoukankan      html  css  js  c++  java
  • HDU 4548.美素数 解题心得

    原题:

    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
     
     
    分析:测试数据组数较多,时间只有1000ms ,所以只能打表解决
     
    代码:
    #include<iostream>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    const int N = 1000000 + 10;
    int ans[N] = { 0 };
    int vis[N];
    
    bool check(int x)
    {
        int total=0;
        while (1)
        {
            total += (x % 10);
            //cout << total << endl;
            x = x / 10;
            if (x == 0)
                break;
    
        }
        if (vis[total] == 0)
            return 1;
        else
            return 0;
    }
    int main()
    {
        int t, kase = 1;
        cin >> t;
    
        vis[1] = 1;
        for (int i = 2; i <= N; i++)
        {
            if (vis[i] == 0)
            for (int j = 2; j*i <= N; j++)
            {
                vis[j*i] = 1;
            }
        }
    
        for (int i = 1; i <= N; i++)
        {
            if (vis[i] == 0&&check(i))
                ans[i] = ans[i - 1] + 1;
            else
                ans[i] = ans[i - 1];
        }
        while (t--)
        {
            int cnt = 0;
            int left,right;
            cin >> left >> right;
            printf("Case #%d: %d
    ", kase++, ans[right]-ans[left-1]);
        
        }
        return 0;
    }
  • 相关阅读:
    IDEA启动报错 NoClassDefFound
    IDEA手动导入jar包到maven本地库
    springboot FilterRegistrationBean 拦截器的使用
    springboot多模块controller访问的问题
    @Slf4j -- lombok.extern.slf4j.Slf4j;
    @mapper注解
    lombok
    Lodop打印小票
    spring security登录认证流程解析
    使用selenium实现简单网络爬虫抓取MM图片
  • 原文地址:https://www.cnblogs.com/shawn-ji/p/4748886.html
Copyright © 2011-2022 走看看