c语言中计算从 100 到 999之间 输出个位和十位数字相等且满足总和不超过 5000 的所有素数 (每行输出五个) “ 2、 输出满足上和及平均值(保留两位小数)
时间: 2024-11-15 07:27:58 浏览: 20
在 C 语言中,首先你需要编写一个函数来判断一个数是否是素数。然后遍历从 100 到 999 的每一位,检查其是否等于相邻的十位,并且它们的和小于等于 5000。这里是一个简单的示例程序,注意素数的判断效率不高,实际应用中可以考虑优化:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
void find_primes_with_equal_digits(int start, int end, int sum_limit) {
for (int num = start; num < end; num += 10) { // 逐百步增加
int digit1 = num / 10; // 十位
int digit2 = num % 10; // 个位
if (digit1 == digit2 && is_prime(num) && num + digit1 * 10 <= sum_limit) {
printf("%d ", num);
}
// 满足条件的数量计数
if (num >= 100 && num <= 999) {
int count = 0;
for (int i = start; i < end; i += 10) {
if ((i / 10) == (i % 10) && is_prime(i) && i + (i / 10) * 10 <= sum_limit) {
count++;
}
}
// 输出满足条件的平均值(忽略空格)
double average = (double)count / (end - start + 1);
printf("%.2f\n", average);
}
}
}
int main() {
int sum_limit = 5000;
find_primes_with_equal_digits(100, 999, sum_limit);
return 0;
}
```
当你运行这个程序,它会找出符合条件的数并打印出来,同时计算并输出满足条件的平均值。
阅读全文