蓝桥题库每日一练 · 2026.08.27

8月27日 先明确:一个数能被 1 和它本身以外的数整除就叫…

Python编程题参考难度 ★★★★☆STEMA 省赛模拟 · 已用
先明确:一个数能被 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 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。