C++输入正整数n和m,输出从n到m(包含n和m)范围内的所有素数, 控制每行输出10个素数。
时间: 2024-10-19 15:13:26 浏览: 43
输入整数n,输出1~n的素数
在C++中,你可以使用Sieve of Eratosthenes算法来找出给定范围内所有的素数,并控制输出格式。这是一个高效的查找素数的方法,它通过创建一个数组并标记非素数的数来工作。以下是一个简单的示例程序:
```cpp
#include <iostream>
#include <vector>
// Function to check if a number is prime
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0)
return false;
}
return true;
}
// Function to find and print primes between n and m
void printPrimes(int n, int m, int count_per_line = 10) {
std::vector<int> primes;
for (int i = n; i <= m; ++i) {
if (isPrime(i))
primes.push_back(i);
}
// Print primes in groups of count_per_line
for (int i = 0; i < primes.size(); i += count_per_line) {
for (int j = 0; j < std::min(count_per_line, primes.size() - i); ++j) {
std::cout << primes[i + j] << " ";
}
std::cout << "\n";
}
}
int main() {
int n, m;
std::cout << "Enter the range (start n end m): ";
std::cin >> n >> m;
if (n > m) {
std::cout << "Invalid input! Please enter n <= m.\n";
return 0;
}
printPrimes(n, m);
return 0;
}
```
当你运行这个程序时,会提示用户输入范围n和m,然后它将打印出从n到m之间的所有素数,每行输出10个,如果有剩余,则在最后一行输出。
阅读全文