【Python】 Comet OJ C0210 [2012普及组-A]质因数分解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Python】 Comet OJ C0210 [2012普及组-A]质因数分解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1049字,纯文字阅读大概需要2分钟。
内容图文
![【Python】 Comet OJ C0210 [2012普及组-A]质因数分解](/upload/InfoBanner/zyjiaocheng/718/ef779d6e8c584385a051d37953e5f5a3.jpg)
题目描述
已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。
输入描述
输入只有一行,包含一个正整数n。
输出描述
输出只有一行,包含一个正整数p,即较大的那个质数。
样例输入1
21
样例输出1
7
思路解析:
本身想的是一个挺简单的方法,Python倒序循环一下,然后判断一下是不是质数,最后直接输出就可以了;But 麻烦就在这儿,因为时间规定的是1s,前面的样例都顺利过了,到最后显示TLE,没办法,只能最后修改复杂度,但是发现O(n^2)已经是最简单的了,所以就忍不住看了看题解发现,数学知识很重要,转换一下就可以了,同时输入的就是一个两个质数的乘积,所以不用再判断是否是质数就可以输出了,但是关键是要正序循环,然后输出的时候转换为相对的质因数
代码如下:先贴一个不能A的
#C0210 [2012普及组-A]质因数分解.py
#这个方法成功的出现了TLE
def isPrime(i):
for j in range(2,j**0.5):
if i % j == 0:
return False
else:
return True
n = eval(input())
for i in range(n,1,-1): #Python倒序循环
if n % i == 0:
if isPrime:
print(i)
break
下面是一个A的
#C0210 [2012普及组-A]质因数分解.py
n = eval(input())
p = 0
for i in range(2,n):
if n % i == 0:
p = n // i #转换,不能直接输出,不然还是会TLE
print(p)
break
内容总结
以上是互联网集市为您收集整理的【Python】 Comet OJ C0210 [2012普及组-A]质因数分解全部内容,希望文章能够帮你解决【Python】 Comet OJ C0210 [2012普及组-A]质因数分解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。