您的位置:首页 > 新闻 > 会展 > python-质因数分解(赛氪OJ)

python-质因数分解(赛氪OJ)

2024/10/5 23:28:46 来源:https://blog.csdn.net/2401_83954530/article/details/141138002  浏览:    关键词:python-质因数分解(赛氪OJ)

[题目描述]
已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式:
输入一个正整数 n。
输出格式:
输出一个正整数 p,即较大的那个质数。
样例 #1
样例输入 #1
21
样例输出 #1
7
提示:
1≤n≤2×109
来源/分类(难度系数:二星)
NOIP普及组 数学 2012 每日一题 


完整代码展示:
def isprime(n):
      for i in range(2,n):
            if n%i==0:
                  return 0
      return 1
a=int(input())
for i in range(2,int(a/2)+1):
      b=[]
      if a%i==0:
            if isprime(i)==1:
                b.append(i)
                b.append(int(a/i))
                b.sort()
                print(b[-1])
                break


代码解释:
def isprime(n):
        for i in range(2,n):
              if n%i==0:
                    return 0
        return 1
”,根据质数的定义自定义一个函数isprime():判断输入的数值是否为质数,如果是,则返回值1,否则返回值0。
a=int(input()) ”,让用户输入符合规定的一个数值。
for i in range(2,int(a/2)+1):
        b=[]
        if a%i==0:
              if isprime(i)==1:
                  b.append(i)
                  b.append(int(a/i))
                  b.sort()
                  print(b[-1])
                  break  
                   ” ,依次遍历从2到int(a/2)的数字,建立一个空列表b,判断该数字i能否将a整除:如果能,则判断i是否为质数(如果是,将i,int(a/i)添加进列表b中),然后对b中元素进行升序排序,最后打印b[-1],以break函数结束循环。


运行效果展示:

fc43548e43d34ce0a9be502ae6db76f7.jpg

72d17d0e10c34fbe8fa1f93ad6cda702.jpg 

            (声明:以上内容均为原创) 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com