您的位置:首页 > 移动开发

Regionals 2014 >> North America - Greater NY >> 7094 - Happy Happy Prime Prime

2015-09-03 12:49 531 查看

7094 - Happy Happy Prime Prime

题目:






题目思路:直接暴力,注意判重

题目链接:7094 - Happy Happy Prime Prime

以下是代码:

[code]#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <string>
#include <cstring>
using namespace std;
int vis[100000];
int prm[100000];
const int MAXV = 1e5; 
bool isPrime[MAXV+1]; 
int size=0; 
void getPrime()  
{  
    memset(isPrime, true, sizeof(isPrime));
    int sq = sqrt((double)MAXV) + 1; 
    int i,j,k;  
    for(i = 2;i <= sq; i++)  
        if(isPrime[i])  
    for(j = 2,k = MAXV/i+1;j < k;j++)  
        isPrime[i*j] = false;  
    for( i = 2 ; i <= MAXV; i++)  
        if(isPrime[i])    
            prm[size++] = i;
    isPrime[0] = isPrime[1] = false;
}  
int ishappy(int n)
{
    long long sum = 0;
    long long num = n;
    memset(vis,0,sizeof(vis));
    while(!vis[sum] && sum != 1)
    {       
        vis[sum] = 1;
        sum = 0;
        while(num > 0)
        {
            int temp = num % 10;
            sum += temp * temp;
            num /= 10;
        }   
        num = sum;
    }
    return sum;
}
int main(){
    int t;
    scanf("%d",&t);
    getPrime();
    while(t--)
    {
        int no,num;
        scanf("%d%d",&no,&num);
        printf("%d %d ",no,num);
        if (isPrime[num] && (ishappy(num) == 1))
        {
            printf("YES\n");
        }
        else
        {
            printf("NO\n");
        }
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: