📅  最后修改于: 2023-12-03 14:50:47.624000             🧑  作者: Mango
该问题要求程序员实现一个函数,该函数接收一个整数N,返回从1到N的所有自然数中至少有一个因子是5和7的自然数的个数。
题目要求至少有一个因子是5和7的自然数,那么我们可以将问题拆解为只有5的倍数、7的倍数和5和7的倍数三种情况,分别计算出满足条件的个数,最后将三个数相加即可。
def countNumbers(n):
# 计算只有5的倍数的个数
a = n // 5
# 计算只有7的倍数的个数
b = n // 7
# 计算既是5的倍数又是7的倍数的个数
c = n // 35
# 返回满足条件的自然数的个数
return a + b - c
代码解释:
#测试样例1
print(countNumbers(10)) #期望输出:2
#测试样例2
print(countNumbers(20)) #期望输出:5
测试样例1,输出2,符合预期
测试样例2,输出5,符合预期