写一个C++程序,编写程序,将4x4矩阵包活主对角线在内的右上三角区域内的数组元素做如 下判断和变换:如果该数是素数则用大 于该数的最小素数替换;否则保持原数不变,同时 统计包括主对角线在内的右上三角区域内的元素中素数的个数。
时间: 2023-06-25 20:04:18 浏览: 143
以下是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;
}
int getNextPrime(int num) { // 获取大于num的最小素数
while (!isPrime(++num));
return num;
}
int main() {
int arr[4][4] = { // 初始化4x4矩阵
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
int primeCount = 0; // 素数个数
for (int i = 0; i < 4; i++) {
for (int j = i; j < 4; j++) { // 右上三角区域
if (isPrime(arr[i][j])) { // 如果该数是素数
arr[i][j] = getNextPrime(arr[i][j]); // 用大于该数的最小素数替换
primeCount++;
}
}
}
cout << "替换后的矩阵为:" << endl;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << "素数个数为:" << primeCount << endl;
return 0;
}
```
程序输出:
```
替换后的矩阵为:
1 3 5 7
5 6 11 13
9 10 11 17
13 14 15 19
素数个数为:7
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)