判断2-100的数是否为素数,不是素数分解成素数的积。输出部分样式为:2 is a prime,3 is a prime,4 is not a prime 4=2×2
#define _CRT_SECURE_NO_WARNINGS 1 // scanf函数不安全
#include <stdio.h>
#include <math.h>
int main()
{
int a[101], i, j;
for (i = 2; i <= 100; i++) {
a[i] = i;
}
for (i = 2; i <= sqrt(100); i++) {
if (a[i] != 0) {
for (j = 2 * i; j <= 100; j += i) {
a[j] = 0;
}
}
}
for (i = 2; i <= 100; i++) {
if (a[i] != 0) {
printf("%d是素数\n", a[i]);
}
else {
printf("%d不是素数,可以分解为以下素数的积:", i);
for (j = 2; j <= i / 2; j++) {
if (a[j] != 0 && a[i - j] != 0) {
printf("%d*%d ", j, i - j);
}
}
printf("\n");
}
}
return 0;
}
(输出样式仅供参考)