如果一个十进制的正整数能够被7整除,或者某个位置的数字是7.则称该正整为与7相关的数。求小于(n<100)的所有与7无关的正整数的平方和。写出c代码
时间: 2024-09-22 13:07:22 浏览: 39
为了找到小于n的所有与7无关的正整数的平方和,你可以编写如下的C语言代码:
```c
#include <stdio.h>
int is_seven_related(int num) {
// 检查数字是否以7结尾
if (num % 10 == 7)
return 0;
// 检查数字是否能被7整除
if (num % 7 == 0)
return 0;
// 否则,检查去掉个位后的剩余部分是否与7有关
int div = num / 10;
while (div > 0) {
if (is_seven_related(div))
return 0;
div /= 10;
}
return 1; // 如果满足条件,则返回1
}
long long sum_of_squares(int n) {
long long total = 0;
for (int i = 1; i * i <= n; ++i) { // 只需考虑i * i <= n的情况,避免计算重复的平方
if (is_seven_related(i))
continue;
total += i * i;
}
return total;
}
int main() {
int n = 100; // 替换为你想要的最大值
printf("小于%d的所有与7无关的正整数的平方和是:%lld\n", n, sum_of_squares(n));
return 0;
}
```
这段代码首先定义了一个辅助函数`is_seven_related`用于检查一个数字是否与7有关,然后在`sum_of_squares`函数中遍历所有小于n的正整数,将那些与7无关的数的平方累加到总和中。
阅读全文