|  | 
 
 发表于 2021-2-3 23:50:40
|
显示全部楼层 
| 本帖最后由 jackz007 于 2021-2-4 00:16 编辑 
 复制代码def maxfactor(n):
    i , r = 2 , 0
    while i * i < n + 1:
        if n % i == 0:
            r = n // i
            break
        i += 1
    return r
while True:
    f = True
    while True:    # 专门用于获取整型数输入,循环结束条件,输入整型数或按下空回车键
        print()
        s = input('请输入一个大于 1 的整数:') . strip()
        print()
        if s:
            try:
                n = int(s)
                break
            except ValueError:
                print('*** 错误 : %s 不是整数。' % s)
        else:
            f = False
            break
    if f:           # 如果上面的循环输入的是空回车,那么,f = False
        if n > 1:   # 只有输入的整数大于 1 才进行后续的操作。
            k = maxfactor(n)
            if k :  #  如果 k > 0 ,那么,k 本身就是最大约数。
                print('%d 的最大约数是 : %d ' % (n , k))
            else:   # k == 0 意味着 n 是素数
                print('%d 是素数。' % n)
        else:
            print('%d 不是一个大于 1 的整数。' % n)
    else:
        break
 | 
 |