当前位置:首页 C++ > 正文

c++判断一个数是否为素数

作者:野牛程序员:2023-07-23 19:35:14 C++阅读 2849

要在C++中判断一个数是否为素数,可以使用以下方法:

#include <iostream>

bool is_prime(int number) {
    if (number <= 1) {
        return false;
    }
    
    // 2和3是素数
    if (number <= 3) {
        return true;
    }
    
    // 如果数是2或3的倍数,不是素数
    if (number % 2 == 0 || number % 3 == 0) {
        return false;
    }
    
    // 在6的倍数的两侧可能存在素数
    // 所有的素数都可以表示成 6k ± 1 的形式
    // k 是一个正整数
    for (int i = 5; i * i <= number; i += 6) {
        if (number % i == 0 || number % (i + 2) == 0) {
            return false;
        }
    }
    
    return true;
}

int main() {
    int number;
    std::cout << "请输入一个整数:";
    std::cin >> number;

    if (is_prime(number)) {
        std::cout << number << " 是素数。" << std::endl;
    } else {
        std::cout << number << " 不是素数。" << std::endl;
    }

    return 0;
}

这段代码定义了一个函数 is_prime 来判断一个整数是否为素数。在 main 函数中,获取用户输入的整数,然后调用 is_prime 函数来判断该数是否为素数,并输出结果。判断素数的方法基于试除法,同时进行了一些优化,例如只检查 6 的倍数的两侧。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击