天生我材必有用,千金散尽还复来。 仰天大笑出门去,我辈岂是蓬蒿人。 大鹏一日同风起,扶摇直上九万里。 十步杀一人,千里不留行。 事了拂衣去,深藏身与名。 安能摧眉折腰事权贵,使我不得开心颜! 且乐生前一杯酒,何须身后千载名? 愿将腰下剑,直为斩楼兰。
 

hdu 4548 美素数

美素数

#include<bits/stdc++.h>

using namespace std;
const int maxn = 1000000;
int ans[maxn] = {0,0,1};
int sumdigit(int val){
    int sum = 0;
    while(val){
        sum+=val%10;
        val/=10;
    }
    return sum;
}
//判断素数
int isSU(int val){ if(val == 2){ return 1; } if(val % 2 == 0){ return 0; } int mm = sqrt(val),i; for(i = 3;i <= mm;i+=2){ if(val % i == 0){ break; } } return i > mm ? 1 : 0; } //打表 void setF(){ int sum = 1; for(int i = 3;i <= maxn;i+=2){ if(isSU(i) && isSU(sumdigit(i))){ sum++; } ans[i] = ans[i+1] = sum; } } int main(){ setF(); int n,l,r; scanf("%d",&n); for(int i = 1;i <= n;i++){ scanf("%d %d",&l,&r); printf("Case #%d: %d\n",i,ans[r] - ans[l-1]); } return 0; }

 

posted @ 2019-03-07 09:59  gudy  阅读(93)  评论(0编辑  收藏  举报