`
zhex
  • 浏览: 24762 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

找出特定数字的最大质因数

阅读更多
首先我们来看个例子:
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


分享到:
评论
2 楼 mxzodiac 2011-09-02  
其实可以倒序求平方根,对最大整除数递减相除,直到最后一个就是最大质数了。
原来你很早就看Project eulur了~
小Z路过~
1 楼 chyanog 2010-05-04  
这个方法有点儿繁琐了,素性判断没有必要的

相关推荐

    分解质因数实现求解最大公约数

    c语言编写分解质因数实现求解两个数的最大公约数

    深入分析C语言分解质因数的实现方法

    首先来看一个最简单的C语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); while(data &gt; 1) { if(data % i == 0) { printf("%d ", i); data /= i; } else i++;...

    Ruby分解质因数

    Ruby分解质因数 博文链接:https://xavieror.iteye.com/blog/69016

    分解质因数2.05

    “找因数”可以求出一个整数的所有因数并统计个数,同时计算出所有因数之和. 5.对哥德巴赫猜想(包括奇数猜想和偶数猜想)进行验证并计算所有结果的可能性及个数(最大29位整数). 6.“高精度计算”工具可以对任意长...

    易语言分解质因数

    易语言分解质因数源码,分解质因数,分解数字,分解_

    java 分解质因数

    此程序可以找出你给的数的质因数,用java编译

    超大正数分解质因数(原创_源代码).rar

    可以对超过64位最大整数(18446744073709551615,约1845亿亿,20位十进制数)的整数分解质因数。原创的全部源代码共享。 使用了.NET库的“大整数”类。界面为 Win Form 程序使用确定性算法。 做了尽可能多的优化...

    分解质因数法求最大公约数

    分解质因数法求最大公约数 输入两个正整数 以空格隔开 即可求得

    python程序分解质因数

    质因数(素因数或质因子)在数论里是指能整除给定正整数的质数,这里通过运行python程序分解质因数

    质因数分解器

    有难分解质因数的数字吗?用这个,输入后回车,瞬间分解。

    分解质因数与质因数乘积

    分解质因数 分解质因数 分解质因数 分解质因数 分解质因数

    分解质因数程序

    分解质因数C++的程序算法设计,较为高效的实现办法

    c++质因数分解,如何快速分解2-100000的数

    c++实现质因数分解,主要是快速,因为分解用普通方法也可以,如何快速分解呢,答案是用筛选法先求出质数,然后分解质数就很快了

    一个分解质因数的方法

    椭圆曲线质因数分解

    c语言分解质因数.rar

    这个程序通常接受一个正整数作为输入,然后通过一系列的计算步骤,找出这个数的所有质因数。这个过程需要用到循环和条件判断等基本的编程结构,是学习和理解编程逻辑的一个很好的练习。 在编写分解质因数的程序时,...

    c语言分解质因数

    使用c语言 来求解分解质因数的这样一个常见算法问题

    分解质因数

    分解质因数,通过c++变成实现对一个数质因数的分解并且输出

    1620 质因数分解.cpp

    1620:质因数分解 时间限制: 1000 ms 内存限制: 524288 KB 提交数: 1390 通过数: 904 【题目描述】 原题来自:NOIP 2012 普及组 已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。 【输入】 输入只有...

    将一个正整数分解质因数.docx

    (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n&gt;k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的...

    用分解质因数法与短除法求三个数的最小公倍数.ppt

    用分解质因数法与短除法求三个数的最小公倍数.ppt

Global site tag (gtag.js) - Google Analytics