zoukankan      html  css  js  c++  java
  • hdoj 4548 美素数

    美素数

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


    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<stdio.h>
    #include<string.h>
    #define max 1000000+10
    int prime[max];
    int meiprime[max];
    int suhe(int gu)
    {
    	int sum=0;
    	while(gu)
    	{
    		sum+=gu%10;				
    		gu=gu/10;
    	}
    	return sum;
    }
    int main()
    {
    	int n,l,m,i,su,b,j;	
    	for(i=1;i<=max;i++)
    	prime[i]=1;
    	for(i=2;i<=max;i++)
    	{
    		if(prime[i]==1)
    		{
    			for(j=2*i;j<=max;j+=i)
    			{
    				prime[j]=0;
    			}
    		}
    	}	
    	prime[1]=0;
    	memset(meiprime,0,sizeof(meiprime));
    	for(i=1;i<=max;i++)
    	{
    		if(prime[i]&&prime[suhe(i)])
    		meiprime[i]=meiprime[i-1]+1;
    		else
    		meiprime[i]=meiprime[i-1];
    	}
    	b=1;
    	scanf("%d",&n);	
    	while(n--)
    	{
    		scanf("%d %d",&l,&m);
    		printf("Case #%d: %d
    ",b,meiprime[m]-meiprime[l-1]);
    		b++;
    	}
    	return 0;
    } 
    

      

  • 相关阅读:
    Python学习第106天(Django的静态文件static、url分组)
    Python学习第105天(Django初步实现)
    Python学习第104天(Django前传web框架)
    Python学习第103天(http协议)
    Python学习第102(数据库进阶)
    Python学习第101天(mysql索引)
    Python学习第100天(多表查询:连接查询、复合查询、子查询)
    Python学习第99天(子网划分)
    java强制转换+自动转换
    WINDOWS快捷键
  • 原文地址:https://www.cnblogs.com/tonghao/p/4503491.html
Copyright © 2011-2022 走看看