使用c++质数判断。从键盘输入一个正整数n,判断n是否为质数
时间: 2023-05-28 07:07:48 浏览: 292
质数是指只能被1和自身整除的正整数,因此可以通过遍历2到n-1之间的所有数,判断是否能够被n整除来判断n是否为质数。以下是使用c语言实现的代码:
```c
#include <stdio.h>
int main() {
int n, i, flag = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 2; i < n; i++) {
if (n % i == 0) {
flag = 1; // 标记不是质数
break;
}
}
if (flag == 0) {
printf("%d是质数\n", n);
} else {
printf("%d不是质数\n", n);
}
return 0;
}
```
首先从键盘输入一个正整数n,然后遍历2到n-1之间的所有数,如果n能够被其中的某个数整除,则说明n不是质数,标记为flag=1并跳出循环;否则n是质数,flag保持为0。最后根据flag的值输出判断结果。
相关问题
C++输入一个正整数n,判断n是否为质数
在C++中,判断一个正整数n是否为质数可以采用常见的试除法算法。如果n小于2,则它不是质数;如果n等于2,它是质数;如果n是偶数(除了2),那么肯定不是质数,因为所有偶数(除了2)都可以分解成2的倍数。对于奇数n,从3开始到√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) {
return false;
}
for (int i = 3; i * i <= n; 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 << "是质数" << std::endl;
} else {
std::cout << n << "不是质数" << std::endl;
}
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;
}
```
阅读全文