山东理工大学第七届ACM校赛-完美素数

完美素数

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

我们定义:如果一个数为素数,且这个数中含有7或3,那么我们称这个数为完美素数。素数的定义为:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。我们的任务是判断一个数是不是完美素数,是输出YES,否则输出NO .

输入

 

 输入数据有多组测试用例,每组测试的第一行为一个整数n(1<=n<=100),下面n行每行有一个正整数x(2<=x<=1000)。

输出

 

每组测试用例输出n行,如果是输出YES,否则输出NO

示例输入

3
7
20
43
2
29
73

示例输出

YES
NO
YES
NO
YES
#include <stdio.h>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <cmath>
#include <queue>
#include <stack>
#include <algorithm>
#define INF 0x3f3f3f3f
using namespace std;
const int Max=100000;
bool prime(int x)
{
    for(int i=2;i*i<=x;i++)
    {
        if(x%i==0)
            return false;
    }

    return true;
}

int main()
{
    int n,x;
    bool flag;
    while(~scanf("%d",&n))
    {
        while(n--)
        {
            scanf("%d",&x);
            if(!prime(x))
            {
                printf("NO\n");
            }
            else
            {
                flag=false;
                while(x)
                {
                    if(x%10==3||x%10==7)
                    {
                        printf("YES\n");
                        flag=true;
                        break;
                    }
                    x/=10;
                }
                if(!flag)
                {
                    printf("NO\n");
                }
            }

        }
    }

    return 0;
}


你可能感兴趣的:(山东理工大学第七届ACM校赛-完美素数)