题解 | #游游的因子计算#

游游的因子计算

https://ac.nowcoder.com/acm/problem/255371

数据范围是,直接算的因数肯定是不行的,那么可以拆开分别算的因数,注意到输入一个数是,那么他拥有个因数,那么分别计算的因数,以及乘起来的因数,总的就是我们的结果。

因数分解的时间复杂度是,枚举因数最大是,可以通过本题。

import sys
from math import isqrt

input = sys.stdin.readline
if __name__ == '__main__':
    a, b = map(int, input().split())
    lst1 = []
    for i in range(1, isqrt(a) + 1):
        if a % i == 0:
            lst1.append(i)
            lst1.append(a // i)
    lst2 = []
    for i in range(1, isqrt(b) + 1):
        if b % i == 0:
            lst2.append(i)
            lst2.append(b // i)
    st = set()
    for x in lst1:
        for y in lst2:
            st.add(x * y)
            st.add(x)
            st.add(y)
    print(len(st))
    for x in sorted(st):
        print(x,end = " ")





全部评论

相关推荐

12-14 22:54
武汉大学 Java
点赞 评论 收藏
分享
11-14 16:15
已编辑
湖南工业大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务