首先我们来看个例子:
13195的质因数为 5, 7, 13, 29, 其中29就是最大的质因数。
现在让我们来计算600851475143的最大质因素。
当看到这个问题的时候,我们首先要判断哪些是质数,而这些质数中又有哪些是可以被600851475143整除的。因此需我们要有个数:index 不断增长,并且找出index中的质数,然后计算index是否可以被num整除,如果可以的话,重设num为被整除后的值。 很明显这操作是个循环,有一点可以肯定,就是在index的增长过程中,永远不可能大于num,因此我们的循环也有了范围判断了
下面我们来写代码:
from math import sqrt
# 质数判断
def isPrime(n):
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return False
return True
index = 2
num = 600851475143
maxPrime = None
while index <= num:
if isPrime(index) and num % index == 0:
num /= index
maxPrime = index
index += 1
print maxPrime
分享到:
相关推荐
c语言编写分解质因数实现求解两个数的最大公约数
首先来看一个最简单的C语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); while(data > 1) { if(data % i == 0) { printf("%d ", i); data /= i; } else i++;...
Ruby分解质因数 博文链接:https://xavieror.iteye.com/blog/69016
“找因数”可以求出一个整数的所有因数并统计个数,同时计算出所有因数之和. 5.对哥德巴赫猜想(包括奇数猜想和偶数猜想)进行验证并计算所有结果的可能性及个数(最大29位整数). 6.“高精度计算”工具可以对任意长...
易语言分解质因数源码,分解质因数,分解数字,分解_
此程序可以找出你给的数的质因数,用java编译
可以对超过64位最大整数(18446744073709551615,约1845亿亿,20位十进制数)的整数分解质因数。原创的全部源代码共享。 使用了.NET库的“大整数”类。界面为 Win Form 程序使用确定性算法。 做了尽可能多的优化...
分解质因数法求最大公约数 输入两个正整数 以空格隔开 即可求得
质因数(素因数或质因子)在数论里是指能整除给定正整数的质数,这里通过运行python程序分解质因数
有难分解质因数的数字吗?用这个,输入后回车,瞬间分解。
分解质因数 分解质因数 分解质因数 分解质因数 分解质因数
分解质因数C++的程序算法设计,较为高效的实现办法
c++实现质因数分解,主要是快速,因为分解用普通方法也可以,如何快速分解呢,答案是用筛选法先求出质数,然后分解质数就很快了
椭圆曲线质因数分解
这个程序通常接受一个正整数作为输入,然后通过一系列的计算步骤,找出这个数的所有质因数。这个过程需要用到循环和条件判断等基本的编程结构,是学习和理解编程逻辑的一个很好的练习。 在编写分解质因数的程序时,...
使用c语言 来求解分解质因数的这样一个常见算法问题
分解质因数,通过c++变成实现对一个数质因数的分解并且输出
1620:质因数分解 时间限制: 1000 ms 内存限制: 524288 KB 提交数: 1390 通过数: 904 【题目描述】 原题来自:NOIP 2012 普及组 已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。 【输入】 输入只有...
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的...
用分解质因数法与短除法求三个数的最小公倍数.ppt