设计一个程序,将20到150以内的素数顺次放入一个4*5的二维数组中,存满为止,最后按每行10个输出该二维数组中的20个素数。
时间: 2024-12-04 19:26:16 浏览: 34
为了设计这样一个程序,我们首先需要编写一个函数来判断一个数字是否为素数,然后创建一个二维数组并将素数填入,最后按照要求输出数组。下面是C++代码实现:
#include <iostream>
#include <vector>
// 判断是否为素数的函数
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;
}
// 将素数填充到二维数组
std::vector<std::vector<int>> fillArrayWithPrimes(int limit, int rows, int cols) {
std::vector<std::vector<int>> primesMatrix(rows, std::vector<int>(cols, 0));
int index = 0;
for (int i = 20; i < limit && index < rows * cols; ++i) {
if (isPrime(i)) {
primesMatrix[index / cols][index % cols] = i;
++index;
}
}
return primesMatrix;
}
// 按行打印二维数组
void printArray(const std::vector<std::vector<int>>& matrix) {
for (const auto& row : matrix) {
for (int elem : row) {
std::cout << elem << " ";
}
std::cout << "\n";
}
std::cout << std::endl;
}
int main() {
int limit = 150;
int rows = 4;
int cols = 5;
// 获取并打印20个素数
std::vector<std::vector<int>> primeMatrix = fillArrayWithPrimes(limit, rows, cols);
printArray(primeMatrix);
return 0;
}
这个程序首先定义了一个isPrime
函数用于检查数字是否为素数。接着,fillArrayWithPrimes
函数根据给定的限制条件填充一个4x5的二维数组,存储素数。最后,printArray
函数按行输出二维数组的内容。
运行此程序后,你会看到从20到150之间的前20个素数被放入了4x5的矩阵中,并按每行10个进行显示。如果实际存储的素数数量少于20个,则数组的最后一行不会完全充满。