c++如何判断一个数是不是质数
作者:野牛程序员:2023-07-23 19:25:34 C++阅读 2742
判断一个数是否为质数是一个常见的算法问题。质数(素数)是指大于1且只能被1和自身整除的正整数。下面是一种用C++编写的判断质数的简单方法,它基于试除法(trial division):
#include <iostream> bool isPrime(int num) { if (num <= 1) { return false; // 质数必须大于1 } for (int i = 2; i * i <= num; ++i) { if (num % i == 0) { return false; // 如果num能被i整除,则num不是质数 } } return true; // 如果num不能被2到sqrt(num)之间的任何数整除,则num是质数 } int main() { int num; std::cout << "请输入一个正整数:"; std::cin >> num; if (isPrime(num)) { std::cout << num << "是质数。" << std::endl; } else { std::cout << num << "不是质数。" << std::endl; } return 0; }
这个方法中,从2开始到sqrt(num)(开方)之间的所有整数依次尝试去除num。如果num能被其中任何一个整数整除,那么num不是质数,返回false;如果都不能整除,那么num是质数,返回true。注意,只需要判断到sqrt(num)即可,因为如果num不是质数,它的一个因子必定小于或等于它的平方根。
请注意,该方法在实际应用中对于大整数并不高效。针对大整数的质数判断需要采用更复杂的算法。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++判断一个整数是奇数还是偶数
- 下一篇:C语言判断一个数是否为奇数