欧拉计划第三题

在这里遇到麻烦了。

其实,算法已设计好,在一般范围内验证都OK的。

但偏偏题目是一个超大的数,600851475143(对于C的整数而言)

看了STACKOVERFLOW的,改成不报错可版本,可能笔记本运算太慢,还是出不了结果。

http://stackoverflow.com/questions/9816603/range-is-too-large-python/9833011

后来在网上找了个C++版本,编译的就是快,一会就搞出来了。

http://blog.csdn.net/ll_0520/article/details/7524468

惭愧~~

def range(stop):
   i = 0
   while i < stop:
       yield i
       i += 1
'''
def isPrime(n):
    isPrime = True
    for i in xrange(2,n/2):
        if n % i == 0:
            isPrime = False
    return isPrime

def LargestPF(num):
    i = 1
    PFL = 1
    for i in xrange(2,num/2):
        if num % i == 0:
            if isPrime(i) == True:
                if i > PFL:
                    PFL = i
    return PFL
'''

def isPrime(n):
    isPrime = True
    for i in xrange(2,n/2):
        if n % i == 0:
            isPrime = False
    return isPrime

def LargestPF(num):
    i = 1
    PFL = 1
    for i in range(num/2):
        if i == 0:
            continue
        if num % i == 0:
            if isPrime(i) == True:
                if i > PFL:
                    PFL = i
    return PFL

print isPrime(13195)
print LargestPF(13195)

 

时间: 2024-09-09 22:44:44

欧拉计划第三题的相关文章

欧拉计划之Largest palindrome product

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99. Find the largest palindrome made from the product of two 3-digit numbers. def depart(n): DList = [] while n >= 10 : DL

欧拉项目【ProjectEuler】系列-第一题

欧拉项目[ProjectEuler]系列-第一题 ----人既无名 既然是第一次,当然要写个基本的介绍咯. 欧拉项目是一系列挑战数学/计算机编程的问题. 需要的不仅仅是数学见解,还要利用计算机编程技巧,需要解决大多数问题,当然,数学帮助你运用优雅而有效的方法,实现漂亮而快速的代码. 欧拉项目的网站是http://projecteuler.net,只要上去注册一个账号就可以开始你的欧拉之旅了,当你把一个问题解决之后就可以参加该问题的讨论,说说你的解决办法,看看其他人的处理思路咯.言归正传,开始欧拉

欧拉项目【ProjectEuler】系列-第二题

欧拉项目[ProjectEuler]系列-第二题  ----人既无名 Problem2:Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... By considering the terms i

HDU 1286 找新朋友(欧拉函数模板)

HDU 1286 找新朋友:http://acm.hdu.edu.cn/showproblem.php?pid=1286 题意:中文题. 思路:欧拉函数的纯模板题,没什么好说的,主要是理解欧拉函数的意义. 在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等. 例如φ(8)=4,因为1,3,5,7均和8互质.   ----by度娘. 更多精彩内容:http://www.bia

UVa 10129:Play on Words, 欧拉道路

题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=105&page=show_problem&problem=1070 题目类型: 欧拉道路 题目: Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solve

欧拉函数性质

先来介绍几个与欧拉函数有关的定理: 定理一:设m与n是互素的正整数,那么 定理二:当n为奇数时,有. 因为2n是偶数,偶数与偶数一定不互素,所以只考虑2n与小于它的奇数互素的情况,则恰好就等于n的欧拉函数值. 定理三:设p是素数,a是一个正整数,那么 关于这个定理的证明用到容斥: 由于表示小于与互素数的正整数个数,所以用减去与它不互素的数的个数就行了. 那么小于与不互素数的个数就是p的倍数个数,有个.所以定理得证. 定理四:设为正整数n的素数幂分解,那么 这个定理可以根据定理一和定理三证明,其实

如何用线性筛法求欧拉函数

前几天做了一个关于欧拉函数的题,当时就做超时了,因为我是暴力做的,后来百度了一下 线性晒法求欧拉函数,所以今天就打算系统的看一下筛法求欧拉函数的问题,该算法在可在线性时间内筛素数的同时求出所有数的欧拉函数: 先介绍一下暴力的欧拉函数: Eular(m) = m - (1-1/p1) - (1-1/p2) - ... - (1-1/pk)  [其中 p1, p2...pk为m的素因子] int Eular(int m) { int ret = m; for(int i=2; i<m; i++) {

A - Farey Sequence——(筛法求欧拉函数)

传送门 A - Farey Sequence Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Description The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 < a < b &l

节点之间-Java C#解决欧拉一笔画问题

问题描述 Java C#解决欧拉一笔画问题 一笔画问题是图论中一个著名的问题.一笔画问题起源于柯尼斯堡七桥问题.数学家欧拉在他1736年发表的论文<柯尼斯堡的七桥>中不仅解决了七桥问题,也提出了一笔画定理,顺带解决了一笔画问题.一般认为,欧拉的研究是图论的开端. 一笔画问题是柯尼斯堡问题经抽象化后的推广,是图遍历问题的一种.在柯尼斯堡问题中,如果将桥所连接的地区视为点,将每座桥视为一条边,那么问题将变成:对于一个有着四个顶点和七条边的连通图 ,能否找到一个恰好包含了所有的边,并且没有重复的路径