【题目】编写程序,将4×4矩阵包括主对角线在内的右上三角区域内的数组元素做如 下判断和变换:如果该数是素数则用大于该数的最小素数替换;否则保持原数不变,同时 统计包括主对角线在内的右上三角区域内的元素中素数的个数 程序的输出结果为: 变换前的数组a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 变换后的数组a 1 3 5 4 5 6 11 8 9 10 13 12 13 14 15 16 素数个数:4
4条回答 默认 最新
- qfl_sdu 2021-05-15 11:21关注
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h> #include <string> //判断是否是素数 bool isSushu(int n) { if(n <2) return false; for (int i = 2; i < n; i++) { if (n %i == 0) { return false; } } return true; } //求大于n的最小素数 int sushu(int n) { int d = n+1; while(true) { int i = 2; for (; i < d; i++) { if (d %i == 0) { d++; break; } } if (i == d) { return d; } } } int main() { int a[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; for (int i = 0; i < 4;i++) { for(int j = i; j < 4; j++) { if (isSushu(a[i][j])) { a[i][j] = sushu(a[i][j]); } } } for (int i =0; i < 4;i++) { for (int j = 0; j < 4;j++) { printf("%d ",a[i][j]); } printf("\n"); } getchar(); getchar(); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用 1