OCAC暑期比赛第一场 L题 判断素数 题解

判断素数
【题目描述】
素数,是指除了一和它本身外,不能被别的书整除的数。
给你一个整数数 a (0 <= a <= 10^18) ,请你判断它是不是素数。
【输入格式】
输入一个整数 a (0 <= a <= 10^18)。
【输出格式】
如果 a 是素数,输出 "YES";否则,输出 "NO" 。
【样例输入1】
8
【样例输出1】
NO
【样例输入2】
13
【样例输出2】
YES
【题目分析】
对于一个数 a, 从 2 到 sqrt(a) 找找有没有能够整除 a 的数。
实现代码如下:

#include <bits/stdc++.h>
using namespace std;

long long a;

bool check() {
    if (a < 2) return false;
    for (long long i = 2; i * i <= a; i ++) {
        if (a % i == 0) return false;
    }
    return true;
}

int main() {
    cin >> a;
    puts(check() ? "YES" : "NO");
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/ocac/p/11113458.html