c++输入一个大于3的整数n,判断他是否为素数
时间: 2023-05-16 09:06:57 浏览: 116
以下是CSDN开发的C知道的回答:
判断一个大于3的整数n是否为素数,可以使用试除法。具体实现如下:
bool is_prime(int n) {
if (n % 2 == 0) return false; // 偶数一定不是素数
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) return false; // 能被i整除,不是素数
}
return true;
}
在主函数中,可以读入一个大于3的整数n,然后调用is_prime函数判断它是否为素数:
int main() {
int n;
scanf("%d", &n);
if (n <= 3) {
printf("输入错误!\n");
return 0;
}
if (is_prime(n)) {
printf("%d是素数!\n", n);
} else {
printf("%d不是素数!\n", n);
}
return 0;
}
希望能帮到你!
相关问题
C++ 输入一个正整数n,判断n是否为质数?
在C++中,判断一个正整数n是否为质数通常会采用试除法的思路。如果n小于2,它不是质数;如果n等于2,它是质数。对于大于2的数,我们需要检查从2到sqrt(n)范围内的所有整数,看它们能否整除n。若存在这样的因子,则n不是质数,否则它是质数。
下面是一个简单的函数示例:
```cpp
#include <iostream>
#include <cmath>
bool isPrime(int n) {
if (n <= 1) {
return false;
} else if (n == 2) {
return true;
} else if (n % 2 == 0) { // 质数除了2以外不能有偶数因子
return false;
}
int sqrtN = std::sqrt(n);
for (int i = 3; i <= sqrtN; i += 2) { // 只需要检查奇数因子
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
std::cout << "请输入一个正整数: ";
std::cin >> n;
if (isPrime(n)) {
std::cout << n << " 是质数.\n";
} else {
std::cout << n << " 不是质数.\n";
}
return 0;
}
```
14_判断n是否为素数 通过课程进入 题 号: 18 14_判断n是否为素数 语言要求: C++ 输入一个大于3的整数n,判断它是否为素数。(输出yes/no) 例如,输入4,输出no; 输入7,输出yes。 错误输入,则输出error。所有输出没有回车符号。
判断一个数n是否为素数(质数)的方法是检查该数是否能被2到√n之间的任意一个整数整除,除了1和n本身。如果不能,则n是素数;否则,它不是。
以下是一个简单的C++程序,用于实现这个功能:
```cpp
#include <iostream>
#include <cmath>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
if (n == 2) {
return true;
}
if (n % 2 == 0) {
return false;
}
for (int i = 3; i <= std::sqrt(n); i += 2) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
std::cout << "Enter a number greater than 3: ";
std::cin >> n;
if (std::cin.fail() || n <= 3) {
std::cout << "error" << std::endl;
} else {
if (isPrime(n)) {
std::cout << "yes" << std::endl;
} else {
std::cout << "no" << std::endl;
}
}
return 0;
}
```
在这个程序中,`isPrime` 函数接收一个整数 `n`,并检查它的因子。如果输入的不是正整数或小于等于3,主函数会输出 "error"。
运行此程序时,请确保输入的是一个大于3的整数。
阅读全文