コード例 #1
0
ファイル: e041.py プロジェクト: gtmanfred/Euler
def Euler_41():
    high = [0]
    for i in range(1,8):
  #      primes = [str(x) for x in maths.primes(10**(i)//4,10**(i-1)//4)]
        alist =["".join(x) for x in  itertools.permutations("".join([str(x) for x in range(1,i+1)]))]
        high=[x for x in alist if maths.isprime2(int(x))]
    return high[-1]
コード例 #2
0
ファイル: e146.py プロジェクト: gtmanfred/Euler
def e146(top=10 ** 6):
    ret = 0
    x1 = lambda n: n ** 2 + 1
    x2 = lambda n: n ** 2 + 3
    x3 = lambda n: n ** 2 + 7
    x4 = lambda n: n ** 2 + 9
    x5 = lambda n: n ** 2 + 13
    x6 = lambda n: n ** 2 + 27
    test = [x1, x2, x3, x4, x5, x6]
    mini = 1000
    for i in range(1, top + 1):
        if i > mini:
            print(i)
            mini += 1000
        z = 0
        yesno = i
        for j in test:
            y = j(i)
            if z:
                if y != z:
                    yesno = 0
                    break
            if not isprime2(y):
                continue
            z = nextprime(y)
        ret += yesno
    return ret
コード例 #3
0
ファイル: e146.py プロジェクト: gtmanfred/Euler
def e146(top=10**6):
    ret = 0
    x1 = lambda n: n**2 + 1
    x2 = lambda n: n**2 + 3
    x3 = lambda n: n**2 + 7
    x4 = lambda n: n**2 + 9
    x5 = lambda n: n**2 + 13
    x6 = lambda n: n**2 + 27
    test = [x1, x2, x3, x4, x5, x6]
    mini = 1000
    for i in range(1, top + 1):
        if i > mini:
            print(i)
            mini += 1000
        z = 0
        yesno = i
        for j in test:
            y = j(i)
            if z:
                if y != z:
                    yesno = 0
                    break
            if not isprime2(y): continue
            z = nextprime(y)
        ret += yesno
    return ret
コード例 #4
0
ファイル: e005.py プロジェクト: gtmanfred/Euler
def Euler_5(top=20):
    val = 1
    for i in range(1,top+1):
        if maths.isprime2(i):
            num = i
            while num<=top:
                num = num*i
            val *=(num//i)
    return val
コード例 #5
0
ファイル: e131.py プロジェクト: gtmanfred/Euler
def e131(top=10**6):
    i = 1
    j = 2
    count = 0
    while True:
        p = j**3 - i**3
        if p >= top: break
        if isprime2(p): count += 1
        i, j = j, j + 1
    return count
コード例 #6
0
ファイル: e131.py プロジェクト: gtmanfred/Euler
def e131(top = 10**6):
    i = 1
    j = 2
    count = 0
    while True:
        p = j**3-i**3
        if p>=top:break
        if isprime2(p):count+=1
        i,j = j,j+1
    return count
コード例 #7
0
ファイル: factors.py プロジェクト: gtmanfred/Euler
def factors(x,i=0):
    if isprime2(x):return [x]
    p = sieve(int(x**.5))
    for j,prime in enumerate(p[i:]):
        tmp = x%prime
        if tmp==0:
            tp = x//prime
            print(tmp,prime)
            return [prime]+factors(tp,j)
    return [x]
コード例 #8
0
ファイル: e003.py プロジェクト: gtmanfred/Euler
def Euler_3(num=600851475143):
    primes = []
    i = 2
    while i <= num:
        if num % i == 0 and isprime2(i):
            num = num // i
            primes = primes + [i]
            i = 2
        i += 1
    return max(primes)
コード例 #9
0
def Euler_41():
    high = [0]
    for i in range(1, 8):
        #      primes = [str(x) for x in maths.primes(10**(i)//4,10**(i-1)//4)]
        alist = [
            "".join(x) for x in itertools.permutations("".join(
                [str(x) for x in range(1, i + 1)]))
        ]
        high = [x for x in alist if maths.isprime2(int(x))]
    return high[-1]
コード例 #10
0
ファイル: e003.py プロジェクト: gtmanfred/Euler
def Euler_3(num=600851475143):
    primes = []
    i=2
    while i <= num:
        if num%i ==0 and isprime2(i):
            num = num//i
            primes = primes +[i] 
            i = 2
        i+=1
    return max(primes)
コード例 #11
0
ファイル: factors.py プロジェクト: gtmanfred/Euler
def factors(x, i=0):
    if isprime2(x): return [x]
    p = sieve(int(x**.5))
    for j, prime in enumerate(p[i:]):
        tmp = x % prime
        if tmp == 0:
            tp = x // prime
            print(tmp, prime)
            return [prime] + factors(tp, j)
    return [x]
コード例 #12
0
def factors(n):
    global primes
    p = primes
    if n ==1:return [1]
    if n in p:return [n]
    else:
        for i in range(len(p)):
            if n%p[i]==0:
                result =[p[i]]+factors(n//p[i])#,primes)
                return result
    if isprime2(n):return [n]
    else: 
        primes+=[nextprime(primes[-1])]
        return factors(n)#,primes)
コード例 #13
0
ファイル: e343.py プロジェクト: gtmanfred/Euler
def factors(n):
    global primes
    p = primes
    if n == 1:
        return [1]
    if n in p:
        return [n]
    else:
        for i in range(len(p)):
            if n % p[i] == 0:
                result = [p[i]] + factors(n // p[i])  # ,primes)
                return result
    if isprime2(n):
        return [n]
    else:
        primes += [nextprime(primes[-1])]
        return factors(n)  # ,primes)
コード例 #14
0
ファイル: nextp.py プロジェクト: gtmanfred/Euler
def nextprime(p):
    if p%2==0:p+=1
    while not isprime2(p):
        p+=2
    if p>=top:return []
    return [p]+nextprime(p+1)
コード例 #15
0
ファイル: nextp.py プロジェクト: gtmanfred/Euler
def nextprime(p):
    if p % 2 == 0: p += 1
    while not isprime2(p):
        p += 2
    if p >= top: return []
    return [p] + nextprime(p + 1)