1 条题解

  • 4
    @ 2026-5-30 21:58:56
    #include <iostream>
    using namespace std;
    
    int main()
    {
        long long n;
        cin >> n;
    
        // 0、1 不是素数
        if (n < 2)
        {
            cout << "No" << endl;
            return 0;
        }
        // 2 是素数
        if (n == 2)
        {
            cout << "Yes" << endl;
            return 0;
        }
        // 大于2的偶数直接排除
        if (n % 2 == 0)
        {
            cout << "No" << endl;
            return 0;
        }
    
        // 只判断奇数,从3开始,步长2
        for (long long i = 3; i * i <= n; i += 2)
        {
            if (n % i == 0)
            {
                cout << "No" << endl;
                return 0;
            }
        }
    
        cout << "Yes" << endl;
        return 0;
    }
    
    

    或更简单:

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
    long long n;
        cin >> n;
        if (n < 2)
        {
            cout << "No" << endl;
            return 0;
        }
        for (long long i = 2; i <= sqrt(n); i++)
        {
            if (n % i == 0)
            {
                cout << "No" << endl;
                return 0;
            }
        }
    
        cout << "Yes" << endl;
        return 0;
    }
    
    
    • 1

    信息

    ID
    30930
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    (无)
    递交数
    45
    已通过
    18
    上传者