【问题描述】
对于任意输入的正整数 n,请编程求出具有 n 个不同因子的最小正整数 m。
例如 :n=4,则 m=6,因为 6 有 4 个不同整数因子 , 即 1、2、3、6 ;而且是最小的有 4 个
因子的整数。
【输入格式】
一个整数 n(1 ≤ n ≤ 50000)。
【输出格式】
输出一个整数 m,表示整数 m 是最小的有 n 个因子的整数。
【输入输出样例】
输入样例
4
输出样例
6
【算法分析】
本题我们只要对 1~50000 之间的数求其因子数,当某个数 m 的因子个数是 n 时,我们输出 n 即可,程序结束。
分析题目可知 :枚举范围为 1 ~ 50000,枚举对象是区间内的数 m,判断条件是 m 的因子数是否为 n,我们可定义一个函数,用来求解并判断数 m 的因子及个数。
需注意的是,当找到因子个数是 n 的时候,就输出 m,并结束程序。
【程序实现】
【运行结果】
- import math
- def sum(k):
- s=0
- for i in range(1,int(math.sqrt(k))+1):
- if k % i==0:
- s=s+2
- if k==i*i:
- s=s-1
- return s
- k=int(input(" 请输入 k :"))
- for i in range(1,50001):
- if sum(i)==k:
- print(i)
- exit()
- 请输入 k :4
- 输出 :6
- 请输入 k :6
- 输出 :12