C++判断是否为质数
时间: 2024-09-20 16:10:02 浏览: 41
在C++中,判断一个数是否为质数通常通过试除法(也称为暴力法)实现。质数是指只有1和它本身两个正因数的自然数。以下是简单的步骤:
```cpp
bool isPrime(int num) {
if (num <= 1) { // 小于等于1的数不是质数
return false;
} else if (num == 2 || num == 3) { // 2和3是特例,它们都是质数
return true;
} else if (num % 2 == 0 || num % 3 == 0) { // 质数不可能是2的倍数,除了2,也不可能同时是3的倍数
return false;
}
for (int i = 5; i * i <= num; i += 6) { // 只需要检查到num的平方根即可,因为大于这个数的因子必定成对存在
if (num % i == 0 || num % (i + 2) == 0) {
return false;
}
}
return true; // 如果能全部通过以上条件,则num是质数
}
```
相关问题
c++判断71是否为素数
可以使用以下代码来判断71是否为素数:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n = 71;
if (n <= 1) {
cout << "not a prime number" << endl;
} else {
int i;
for (i = 2; i <= sqrt(n); i++) {
if (0 == n % i) {
break;
}
}
if (i > sqrt(n)) {
cout << "a prime number" << endl;
} else {
cout << "not a prime number" << endl;
}
}
return 0;
}
根据引用中的方法一,也可以使用以下代码来判断71是否为素数:
#include <bits/stdc++.h>
using namespace std;
bool is_su_shu(int n) {
if (n == 1) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n = 71;
if (is_su_shu(n)) {
cout << "a prime number" << endl;
} else {
cout << "not a prime number" << endl;
}
return 0;
}
怎么在c++判断数是否为质数
在C++中,判断一个数是否为质数通常采用试除法(也叫暴力法),即检查这个数能否被小于它的所有正整数整除。如果都不能整除,那么它就是质数。以下是简单的代码示例:
```cpp
#include <iostream>
using namespace std;
bool isPrime(int num) {
if (num <= 1) { // 质数定义排除1和负数
return false;
}
for (int i = 2; i * i <= num; ++i) { // 只需检查到sqrt(num),因为大于sqrt(num)的因子会有一个对应小于sqrt(num)
if (num % i == 0) { // 如果能被整除,则不是质数
return false;
}
}
return true; // 所有检查都通过,所以是质数
}
int main() {
int num;
cout << "请输入一个整数:";
cin >> num;
if (isPrime(num)) {
cout << num << " 是质数。\n";
} else {
cout << num << " 不是质数。\n";
}
return 0;
}
```
阅读全文