题目:
代码:
#include<stdio.h>
#include<math.h>
//素数的判定方法
bool ss(int num) {
if (num <= 1) {
return false;
}
if (num == 2)
{
return true;
}
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
//对目标素数的转变
int bian_huan(int num ,int p[]) {
for (int i = 0;true;i++) {
if (p[i] == num) {
return p[i + 1];
}
}
}
int main() {
int i, j, k = 0;
int a[4][4] = { {3,6,4,17},{8,5,9,10 },{9,19,7,20},{4,14,21,23} };//定义目标数组
int b[10] = { 2,3,5,7,11,13,17,19,23,29 };//素数数组
//遍历下三角数组,实行素数升级变换
for (i = 0; i < 4; i++) {
for (j = 0; j <= i; j++) {
if (ss(a[i][j])) {
a[i][j]=bian_huan(a[i][j], b);
k++;
}
else
{
a[i][j] = 0;
}
}
}
//打印更新后的数组表
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf("%2d ",a[i][j]);
}
printf("\n");
}
printf("count=%d", k);
}
运行效果:
?
补充:对素数的判断,网上有好几种办法,都是可以做到的,此方法并不唯一。?
? ? ? ? 对于题目中素数的判断后的变换,采用的是建立素数数组,然后让目标素数后移一位的形式实现的。
?
|