输入一个正整数n,求解并输出1~n之间能被3整除、但不能被7整除的所有整数之 和。
时间: 2023-05-26 18:03:32 浏览: 195
算法步骤:
1. 输入一个正整数n;
2. 初始化两个变量:一个用于累加结果,一个用于循环计数;
3. 循环从1到n,判断i是否能被3整除且不能被7整除,若是则累加到结果中;
4. 循环结束后输出结果。
Python 代码如下:
n = int(input("请输入一个正整数:"))
sum = 0 # 初始化累加器
for i in range(1, n+1):
if i % 3 ==0 and i % 7 != 0:
sum += i # 累加满足条件的数
print("1~{}之间能被3整除、但不能被7整除的所有整数之和为:{}".format(n, sum))
相关问题
输入一个正整数n,求解并输出1~n之间能被3整除、但不能被7整除的所有整数之和。
题目描述:输入一个整数n,求解并输出1~n之间能被3整除、但不能被7整除的所有整数。
解题思路:首先需要遍历整个范围[n,1],判断每一个数是否符合题目要求。判断方法可以使用取余运算,当一个数能被3整除且不能被7整除时,即符合要求,将其输出即可。
代码实现:
n = int(input("请输入一个整数n:"))
for i in range(n, 0, -1):
if i % 3 == 0 and i % 7 != 0:
print(i, end=" ") # 加上 end=" " 表示输出之间用空格隔开
输入一个正整数n,求解并输出 1~n之间能被3整除、但不能被7整除的所有整数之和。
算法一:
使用循环遍历1~n之间的所有整数,判断是否能被3整除且不能被7整除,若符合条件,则将其累加到结果中。
时间复杂度:O(n)
代码如下:
n = int(input())
sum = 0
for i in range(1, n+1):
if i % 3 == 0 and i % 7 != 0:
sum += i
print(sum)
算法二:
利用数学公式,可以得到1~n中能被3整除、但不能被7整除的所有整数之和为:3+6+9+...+(n//3*3),即3的倍数之和。可以使用等差数列求和公式进行计算。
时间复杂度:O(1)
代码如下:
n = int(input())
sum = ((n//3) * (3 + n//3*3)) // 2
print(sum)
阅读全文