您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 1浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Leetcode刷题Python】最小因子问题

Better Bench 发布时间:2022-09-04 16:15:02 ,浏览量:1

2022年秋招京东算法工程师笔试题 2022-9-3

1 题目

1、最小因子问题

小红拿到一个正整数n,他希望找到n的一个最小因子p,满足p*p>n

案例:

输入

2

36

37

输出 9

37

2 python实现
def low_fac(n):
    k = n
    for i in range(1,n+1):
        if n%i==0 and i*i>k:
            print(int(i))
N = int(input())
for _ in range(N):
    j = int(input())
    low_fac(j)

以上算法超时

优化后的方法

import math
def low_fac(n):
    ans = []
    for i in range(1,int(math.sqrt(n))):
        if n%i==0:
            if i*i>n:
                ans.append(i)
            t = int(n/i)
            if t!=i and t*t>n:
                ans.append(t)
    return min(ans)       

N = int(input())
for _ in range(N):
    j = int(input())
    print(low_fac(j))
关注
打赏
1665674626
查看更多评论
立即登录/注册

微信扫码登录

0.0445s