蓝桥题库每日一练 · 2026.08.27
8月27日 先明确:一个数能被 1 和它本身以外的数整除就叫…
先明确:一个数能被 1 和它本身以外的数整除就叫合数,能整除它的数叫它的因数(如 6 的因数有 1、2、3、6,共 4 个)。输入一个 3~12 之间的正整数 n,求「恰好有 n 个不同因数的最小正整数」并输出。(例:有 3 个因数的最小数是 4,有 4 个因数的最小数是 6。)
样例
输入 3输出 4输入 4输出 6评分标准
- 30 分:能接收输入
- 60 分:能算出一个符合要求的结果
- 120 分:算出两个以上符合要求的结果
- 150 分:完全按样例格式输出
参考解法
先补一个词——因数:能整除某个数的数,就是它的因数。比如 6,能被 1、2、3、6 整除,所以 6 有 4 个因数。
题目要「恰好有 n 个因数的最小的数」。办法最朴实:从 1 开始一个一个往上试,每碰到一个数,就数数它有几个因数,头一个正好数出 n 个的,就是答案,马上停。
怎么数因数?拿 1 到 k 挨个去除 k,除得尽(余数为 0)就记一个:
n = int(input())
k = 1
while True:
cnt = 0
for i in range(1, k + 1):
if k % i == 0: # 除得尽,i 是 k 的因数
cnt += 1
if cnt == n:
print(k)
break
k += 1
验一下:n=3,1 有 1 个因数、2 有 2 个、3 有 2 个、4 有 1/2/4 共 3 个——停,输出 4;n=4 时数到 6(1、2、3、6)输出 6。……此答案或解析由 AI 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。