酷代码 AI
菜单

编程输入两个整数a和b(1<a<b),对于整数区间[a,b]内的所有整数x,依次输出x的所有真约数。 输入格式 一行中两个整数a和b,空格分隔。 输出格式 [a,b]区间内每个整数x输出一行,先输出x和冒号,然后依次输出它的所有真约数,约数间以一个空格分隔。 输入样例: 100 110 输出样例: 100:1 2 4 5 10 20 25 50 101:1 102:1 2 3 6 17 34 51 103:1 104:1 2 4 8 13 26 52 105:1 3 5 7 15 21 35 106:1 2 53 107:1 108:1 2 3 4 6 9 12 18 27 36 54 109:1 110:1 2 5 10 11 22 55 输入样例: 9990 9999 输出样例: 9990:1 2 3 5 6 9 10 15 18 27 30 37 45 54 74 90 111 135 185 222 270 333 370 555 666 999 1110 1665 1998 3330 4995 9991:1 97 103 9992:1 2 4 8 1249 2498 4

a, b = map(int, input().split()) for x in range(a, b + 1): divisors = [] for i in range(1, x): if x % i == 0: divisors.append(str(i)) print(f"{x}:{' '.join(divisors)}") 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 确保真约数不包括数字本身,循环条件应为 range(1, x) 而不是 range(1, x+1) - 注意输出格式要求,冒号后直接跟约数列表,没有多余空格 - 处理大区间时考虑算法效率,避免使用 O(n^2) 复杂度的方法 [2025-12-10 23:29:21 | AI写代码神器 | 148点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多