本文整理汇总了Python中Euler.prime_make方法的典型用法代码示例。如果您正苦于以下问题:Python Euler.prime_make方法的具体用法?Python Euler.prime_make怎么用?Python Euler.prime_make使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Euler
的用法示例。
在下文中一共展示了Euler.prime_make方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: and
# 需要导入模块: import Euler [as 别名]
# 或者: from Euler import prime_make [as 别名]
"""
project euler problem 135
正の整数x, y, z が等差数列として与えられたとき、
x2 - y2 - z2 = n がちょうど2個の解を持つような最小の正の整数 n は、n = 27である。
34^2 − 27^2 − 20^2 = 12^2 − 9^2 − 6^2 = 27
n = 1155 は、方程式がちょうど10個の解を持つ最小の値である。
ちょうど10個の解を持つような n は、100万までにいくつ存在するか?
"""
import time
import Euler
time1 = time.time()
n = 0
check = 0
count = 0
primelist = Euler.prime_make(1000000)
print(time.time() - time1)
while n < 1000000:
n += 1
if n in primelist:
continue
x = 0
while x <= n / 2:
x += 1
if n % x == 0 and n / x > x and (n / x - x) % 2 == 0:
check += 1
if check == 10:
count += 1
check = 0
if time.time() - time1 > 60:
break
示例2: range
# 需要导入模块: import Euler [as 别名]
# 或者: from Euler import prime_make [as 别名]
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
....
上から8行見るとパスカルの三角形は12個の異なる数を含む.
1, 2, 3, 4, 5, 6, 7, 10, 15, 20, 21, 35である.
任意の素数の二乗がnを割り切らないとき, 正整数nが平方因子を持たないと言う.
先ほどの12個の数字を見ると, 4, 20以外は平方因子を持たない.
従って, 最初の8行の平方因子を持たない異なる数の和は105になる.
パスカルの三角形の最初の51行に含まれる平方因子を持たない異なる数の和を答えよ.
"""
import time
import math
import Euler
time1 = time.time()
sosu = Euler.prime_make(50000)
trilist = [x for x in range(1, 50)]
answerlist = []
for i in range(2, 51):
for j in range(int(i)):
trilist.append(
(math.factorial(i) / (math.factorial(j) * math.factorial(i - j))))
trilist = list(set(trilist))
for k in trilist:
check = 1
for l in sosu:
if k % (l ** 2) == 0:
check = 0
break
if check == 1:
answerlist.append(k)
示例3: tuple
# 需要导入模块: import Euler [as 别名]
# 或者: from Euler import prime_make [as 别名]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
project euler problem 187
合成数とは2つ以上の素因数を含む整数のことである.
例えば15 = 3 × 5, 9 = 3 × 3, 12 = 2 × 2 × 3が合成数である.
30以下には丁度2つの素因数を含む合成数 (異なる素因数でなくてもよい) が,
10個存在する. 4, 6, 9, 10, 14, 15, 21, 22, 25, 26がそうである.
合成数n < 10^8について, 丁度2つの素因数を含む合成数 (異なる素因数でなくてもよい) の数を答えよ.
"""
import time
import Euler
t0 = time.time()
primes = tuple(Euler.prime_make(50000000))
answer_count = 0
for i in primes:
if int(i) > 10000:
break
print(i)
for j in primes:
if j < i:
continue
if int(i) * int(j) >= 10 ** 8:
break
answer_count += 1
print(answer_count)
print(time.time() - t0, "seconds")
示例4: list
# 需要导入模块: import Euler [as 别名]
# 或者: from Euler import prime_make [as 别名]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
project euler problem 91
素数の2乗と素数の3乗と素数の4乗の和で表される最小の数は28である. 50未満のこのような数は丁度4つある.
28 = 2^2 + 2^3 + 2^4
33 = 3^2 + 2^3 + 2^4
49 = 5^2 + 2^3 + 2^4
47 = 2^2 + 3^3 + 2^4
では, 50,000,000未満の数で, 素数の2乗と素数の3乗と素数の4乗の和で表される数は何個あるか?
"""
import time
import Euler
t0 = time.time()
primes = Euler.prime_make(7080)
answerlist = []
for x in primes: # 7079**2>50000000
for y in [i for i in primes if i < 374]: # 374**3>50000000
for z in [k for k in primes if k < 90]: # 89**4>50000000
num = x ** 2 + y ** 3 + z ** 4
if num < 50000000:
answerlist.append(num)
answerlist = list(set(answerlist))
answerlist.sort()
print(len(answerlist))
print(time.time() - t0, "seconds")
示例5: factors
# 需要导入模块: import Euler [as 别名]
# 或者: from Euler import prime_make [as 别名]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
project euler problem 179
nとn + 1 の正の約数の数が同じになる 1 < n < 10^7 の整数は幾つあるか。
例として, 14 の正の約数は 1, 2, 7, 14 であり, 15 の正の約数は 1, 3, 5, 15 である.
"""
import time
import Euler
from functools import reduce
t0 = time.time()
answer = 0
n = 1
lst = [0, 1]
primes = Euler.prime_make(10 ** 5)
def factors(n, lists):
lists
if n == 1:
return {1: 1}
elif n == 2:
return {2: 1}
elif n == 3:
return {3: 1}
xd = {}
for i in lists:
moto = n
while n % i == 0:
if i in xd:
示例6: tuple
# 需要导入模块: import Euler [as 别名]
# 或者: from Euler import prime_make [as 别名]
# coding:utf-8
"""
Project Euler Problem 123
p_n を n 番目の素数とする. (p_1 = 2, p2 = 3, ...)
r を (p_n - 1)^n + (p_n + 1)^n を p_n^2 で割った余りとする.
例えば, n = 3 のとき, p_3 = 5 であり, 4^3 + 6^3 = 280 ≡ 5 mod 25.
余り r が 10^9 より大きくなる n の最小値は 7037 である.
余り r が 10^10 より大きくなる最初の n を求めよ.
"""
import time
import Euler
t1 = time.time()
primes = Euler.prime_make(1000000)
primes.insert(0, 0)
primes = tuple(primes)
for i in range(7038, len(primes)):
if i % 2 == 0:
continue
m = ((primes[i] - 1) ** i + (primes[i] + 1) ** i) % (primes[i] ** 2)
if i % 100 < 3:
print(i, m)
if m > 10 ** 10:
break
print(i)
print(time.time() - t1, "seconds")
示例7: tuple
# 需要导入模块: import Euler [as 别名]
# 或者: from Euler import prime_make [as 别名]
100未満の素数を連続する素数の和で表したときにこれが最長になる.
同様に, 連続する素数の和で1000未満の素数を表したときに最長になるのは953で21項を持つ.
100万未満の素数を連続する素数の和で表したときに最長になるのはどの素数か?
"""
import time
import Euler
time1 = time.time()
maxl = 0
limit = 1000000
answer = 0
max_kosuu = 550 # この個数を超えて和を求めても100万を超過する
primes = tuple(Euler.prime_make(limit))
primes_2 = tuple(primes[1:])
for i in range(2, max_kosuu, 2):
sums = sum(primes[:i])
length = len(primes[:i])
if sums > limit:
break
if length > maxl and sums in primes:
maxl = length
answer = sums
print(maxl, """primes[:i],""""sum is", sums)
for i in range(3, max_kosuu, 2):
for j in range(len(primes_2) - i):
sums = sum(primes_2[j:i])