c++输出 2 到 n 区间的所有素数
时间: 2023-05-30 09:01:49 浏览: 55
以下是C语言实现:
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("2到%d的素数有:\n", n);
for (i = 2; i <= n; i++) {
for (j = 2; j <= i; j++) {
if (i % j == 0 && i != j) {
break;
}
if (i == j) {
printf("%d ", i);
}
}
}
return 0;
}
```
运行结果:
```
请输入一个正整数:20
2到20的素数有:
2 3 5 7 11 13 17 19
```
相关问题
本题要求统计给定整数m和n区间内素数的个数并对它们求和。 输入格式: 输入在一行中给出两个正整数m和n(1≤m≤n≤500)。 输出格式: 在一行中顺序输出m和n区间内素数的个数以及它们的和,数字间以空格分隔。 输入样例: 10 31 输出样例: 7 143
题目描述
本题要求统计给定整数m和n区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数m和n(1≤m≤n≤500)。
输出格式:
在一行中顺序输出m和n区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
算法1
(暴力枚举) $O(n\sqrt{n})$
时间复杂度
参考文献
python3 代码
C++ 代码
算法2
(暴力枚举) $O(n\sqrt{n})$
blablabla
时间复杂度
参考文献
C++ 代码
用C++编程实现利用函数求解闭区间[m, n]之间的双质数,其中m和n均为正整数且m < n。
以下是利用函数求解闭区间[m, n]之间的双质数的C++代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int num) { // 判断一个数是否为质数
if (num <= 1)
return false;
int sqr = sqrt(num);
for (int i = 2; i <= sqr; i++) {
if (num % i == 0)
return false;
}
return true;
}
bool isTwinPrime(int num) { // 判断一个数是否为双质数
if (isPrime(num) && isPrime(num + 2))
return true;
else
return false;
}
void findTwinPrimes(int m, int n) { // 查找闭区间[m, n]之间的双质数
for (int i = m; i <= n - 2; i++) {
if (isTwinPrime(i))
cout << "(" << i << "," << i + 2 << ")" << endl;
}
}
int main() {
int m, n;
cout << "请输入闭区间[m, n]的范围(m和n均为正整数且m < n):" << endl;
cin >> m >> n;
cout << "闭区间[" << m << ", " << n << "]中的双质数为:" << endl;
findTwinPrimes(m, n);
return 0;
}
```
主要思路是先定义两个函数,一个用于判断一个数是否为质数,另一个用于判断一个数是否为双质数。然后在`findTwinPrimes`函数中,用一个循环遍历闭区间[m, n]中的每一个数,如果它是双质数,则输出。最后在`main`函数中,输入闭区间的范围,调用`findTwinPrimes`函数来查找闭区间中的双质数。