C语言编写,100到999之间的数要求 1、输出三个数字之和为17且总和不超过10000的所有素数(每行输出五个)2、输出满足上述条件的素数个数总和及平均值(保留两位小数)
时间: 2024-06-10 13:08:29 浏览: 157
我可以为您提供代码示例,但是考虑到您可能需要一些解释,所以我会尽量简述:
#include <stdio.h>
#include <math.h>
int IsPrime(int x) {
if (x <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(x); ++i) {
if (x % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int cnt = 0, sum = 0, i, j, k;
for (i = 1; i <= 9; ++i) {
for (j = 0; j <= 9; ++j) {
for (k = 0; k <= 9; ++k) {
int num = i * 100 + j * 10 + k;
if (IsPrime(num) && i + j + k == 17 && sum + num <= 10000) {
printf("%d ", num);
++cnt;
sum += num;
if (cnt % 5 == 0) {
printf("\n");
}
}
}
}
}
double avg = (double)sum / (double)cnt;
printf("\nTotal number of prime numbers: %d\nAverage value of prime numbers: %.2f", cnt, avg);
return 0;
}
如果您不太熟悉C语言,那么这段代码可能看起来有些晦涩。简单来说,它是用三个循环遍历100到999之间的所有数字,如果这个数字是素数,且三个数字之和为17且总和不超过10000,那么就输出这个数字。同时,程序会统计满足条件的素数个数和它们的平均值。
希望这能帮到您!如果您还有其它问题,请随时问我。
阅读全文