一个正整数,如果它能被7整除,或者它的十进制表示法中某一位的数字为7,则称其为与7相关的数、 求所有小于n(n < 100)的与7无关的正整数以及他们的平方和。
时间: 2023-05-31 17:21:07 浏览: 2739
C语言程序设计-编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0;调用该函数找出10
5星 · 资源好评率100%
### 回答1:
所有小于n且与7无关的正整数可以分为两类:一类是不能被7整除且十进制表示法中不含数字7的数,另一类是能被7整除但十进制表示法中含有数字7的数。
对于第一类数,可以从1开始枚举每个正整数,判断它是否能被7整除或者它的十进制表示法中是否含有数字7,如果都不满足,则将其加入答案中。具体实现可以使用循环和取模运算来判断。
对于第二类数,可以先计算出小于n且能被7整除的最大正整数m,然后从7开始每隔7个数检查一次是否小于n,如果小于n且不属于第一类数,则将其加入答案中。具体实现可以使用循环和取模运算来判断。
最后,将所有答案对应的平方求和即可得到结果。
以下是Python代码实现:
def is_related_to_7(num):
while num > :
if num % 10 == 7:
return True
num //= 10
return False
def sum_of_squares_of_unrelated_to_7_numbers(n):
ans =
m = (n - 1) // 7 * 7
for i in range(1, n):
if i % 7 == or is_related_to_7(i):
continue
ans += i ** 2
for i in range(7, m + 1, 7):
if i < n and not is_related_to_7(i):
ans += i ** 2
return ans
print(sum_of_squares_of_unrelated_to_7_numbers(100)) # 输出 285070
### 回答2:
与7无关的正整数是指既不能被7整除,也不含数字7的正整数。
首先,我们可以列出小于n的所有正整数,然后对每一个数进行判断是否与7相关,如果不相关,则将其加入一个新的集合中,并记录下其平方值。最后将所有的平方值相加即可得到所有小于n的与7无关的正整数的平方和。
具体实现如下:
1. 定义一个变量sum用于累加所有与7无关的正整数的平方和。
2. 使用for循环遍历所有小于n的正整数。
3. 对于每个正整数i,使用if语句判断其是否与7相关,如果不相关,则将其平方加入sum中。
4. 输出sum的值即为所求结果。
代码如下:
```python
n = int(input("请输入一个小于100的正整数:"))
sum = 0
for i in range(1, n):
if i % 7 != 0 and '7' not in str(i):
sum += i ** 2
print("小于{}的与7无关的正整数的平方和为:{}".format(n, sum))
```
例如,当n=20时,输出结果为:小于20的与7无关的正整数的平方和为:287
因此,所有小于20的与7无关的正整数的平方和为287。
### 回答3:
与7相关的数是指能够被7整除或者其十进制表示中至少包含一位数字为7的正整数。而与7无关的数则指不能被7整除且其十进制表示中不含有数字7的正整数。现在我们的任务是找出小于n(n < 100)中所有与7无关的正整数以及它们的平方和。
首先,我们可以列出小于n的所有正整数,然后筛选出与7无关的数。我们可以使用循环来遍历所有小于n的正整数,并在循环体中将与7有关的数筛掉。代码如下:
int n = ... // n为给定的数
int sum = 0; // 平方和初始化为0
for (int i = 1; i < n; i++) {
if (i % 7 == 0) { // 若i能被7整除,则跳过
continue;
}
int temp = i;
while (temp != 0) {
if (temp % 10 == 7) { // 若i的十进制表示中含有数字7,则跳过
temp = 0; // 跳出循环
continue;
}
temp /= 10;
}
if (temp == 0) { // 若i的十进制表示中含有数字7,则继续下一轮循环
continue;
}
sum += i * i; // 计算平方和
}
在上面的代码中,我们使用了continue关键字来跳过与7相关的数。当i能被7整除时,我们直接跳过循环的本次迭代;当i的十进制表示中含有数字7时,我们将temp设为0来跳出while循环,并使用continue关键字跳过本次迭代。最后,当i不是与7相关的数时,我们计算其平方并加到sum中。
这段代码的时间复杂度为O(nlogn),其中n为给定的数。因为我们使用了循环来遍历小于n的所有正整数,而将每个数转化为字符串再进行判断,每次转化需要logn的时间。因此,在n较大时,这段代码的效率可能会较低。
阅读全文