예제 #1
0
def main():
    i = 647
    while True:
        s1 = set(pyprimes.factors(i))
        s2 = set(pyprimes.factors(i + 1))
        s3 = set(pyprimes.factors(i + 2))
        s4 = set(pyprimes.factors(i + 3))
        if len(s1) == 4 and len(s2) == 4 and len(s3) == 4 and len(s4) == 4:
            print i
            break
        i += 1
예제 #2
0
def main():
    all = []
    for d in xrange(2, 1000001):
        for n in xrange(int(d * 0.428571428570), int(d * 0.428571428572) + 1):
            all.append((float(n) / float(d), n, d))
    all = sorted(all)
    index = all.index((float(3) / float(7), 3, 7))
    for i in xrange(index - 1, -1, -1):
        x, n, d = all[i]
        if set(pyprimes.factors(n)).isdisjoint(set(pyprimes.factors(d))):
            print n
            break
예제 #3
0
def findCoPrimeNos(n):
    if (pyprimes.isprime(n)):
        coPrimeNos = [num for num in xrange(1, n)]
        return coPrimeNos

    primeFactors = pyprimes.factors(n)
    coPrimeNos = [
        num for num in xrange(1, n)
        if (not checkDivisibleAny(num, primeFactors))
    ]
    return coPrimeNos
예제 #4
0
def factorizations(x):
    factorization, listes = factors(x), [[x]]
    for n_factors in range(1, len(factorization)):
        for combination in combinations(factorization, n_factors):
            p = product(combination)
            for facto in factorizations(x / p):
                liste = [p]
                liste.extend(facto)
                liste = sorted(liste)
                if liste not in listes:
                    listes.append(liste)
    return listes
예제 #5
0
def is_ddp_new(o,d):
  for i in range(1,100):
    facts = pyprimes.factors(d - i)
    if len(set(facts)) == 1:
      p, k = facts[0], len(facts)
      eo, ed = erdos_order(p, k), erdos_degree(p, k)
      if p == 2:
        eo += 1
      if o - eo  > d - ed:
        print(eo,ed,p,k)
        return True
      else:
        return False
예제 #6
0
def all_divisors_primes(n):
    finalset = []
    primefactors = factors(n)
    powerset = chain.from_iterable(combinations(
        primefactors, r) for r in range(1, len(primefactors) + 1))
    for s in powerset:
        divisor = 1
        for d in s:
            divisor *= d
        finalset.append(divisor)

    finalset.insert(0, 1)

    return list(set(finalset))
예제 #7
0
def fap(n):
    nums = set()
    primes = set(pyprimes.factors(n))
    for i, prime in enumerate(primes):
        if i % 100 == 0:
            print str(i) + "/" + str(len(primes)) + "..."
        mult = 1
        while True:
            if mult % 10 ** 6 == 0:
                print str(float(prime * mult) / float(n)) + "%"
            if prime * mult > n:
                break
            nums.add(prime * mult)
            mult += 1
    return nums
예제 #8
0
파일: 32.py 프로젝트: jackoe/Project-Euler
def findDivsorsOf(testNum):
	pFactors = set(pyprimes.factors(testNum))
	nonpFactors = set([])
	for fact in pFactors:
		i = 2
		while fact*i < testNum:
			if testNum % (fact*i) == 0:
					nonpFactors.add(fact * i)
			i += 1
			nonpFactors.add(1)
			nonpFactors.add(testNum)
	if testNum in pFactors:
		pFactors.remove(testNum)
	if testNum in nonpFactors:
		nonpFactors.remove(testNum)
	return pFactors.union(nonpFactors)
예제 #9
0
파일: z2.py 프로젝트: Icemore/homework
def test(num):
	fact = pyprimes.factors(num)
	return len(fact)==2 and len(set(fact))==2
예제 #10
0
def coprime(k, n):
    return set(pyprimes.factors(k)).intersection(set(pyprimes.factors(n))) == set()
예제 #11
0
import pyprimes

total = 0
for i in xrange(1, 5000000):
    total += sum(pyprimes.factors(15000000+i))
    total -= sum(pyprimes.factors(1+i))
print total + sum(pyprimes.factors(20000000))
예제 #12
0
# Project Euler problem 3
# Largest prime factor
# We go module searching in the PyPi for what we want

from pyprimes import factors


if __name__ == "__main__":
    """
    Oftentimes, it's more about finishing the problem than getting the most
    efficient solution. Go look for the pyprimes module on PyPi and install it
    to run this code.

    TIP: PyPi has almost everything you've ever wanted. Unfortunately, Python
    hasn't fully transitioned to 3 yet.
    """
    print(max(factors(600851475143)))
예제 #13
0
from utils import product
from pyprimes import factors
from itertools import combinations

target = 2 * 2 * 2 * 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23
count, primes = 0, list(set(factors(target)))
for i in xrange(len(primes) + 1):
    for comb in combinations(primes, i):
        count += (-1) ** i *  product(comb)
R = abs(count) * target / product(primes)
print target
print R
print target - 1
print R / float(target - 1)
print 15499. / 94744.
print R / float(target - 1) < 15499. / 94744.
예제 #14
0
def rad(n):
    return reduce(operator.mul, set(pyprimes.factors(n)))
예제 #15
0
def get_factors(num_str):
    factors = []
    for i in range(2, 11):
        num = int(num_str, i)
        factors.append(str(pyprimes.factors(num)[0]))
    return factors
예제 #16
0
def totient(n):
    factors = list(set(pyprimes.factors(n)))
    result = 1
    for p in factors:
        result = result * (1 - (1 / p))
    return round(result * n)
예제 #17
0
"""Largest prime factor

[Problem 3](https: // projecteuler.net / problem=3)

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?"""

from pyprimes import factors

number = 600851475143

factors = factors(number)

print(max(factors))
예제 #18
0
# imports
import pyprimes as prime
import pandas as pd
import random as rn
import bokeh.plotting as bk
from bokeh.objects import ColumnDataSource

############### Getting data and arranging in Data.Frame
# Take in value and check that it's not such a huge number
num = abs(int(raw_input("Give me a number: ")))
while (num>= 1000000000000):
    num = int(raw_input("Give me a smaller number (<1,000,000,000,000): " ))
    
# Find prime factorization of number and store factors (not 1) in DataFrame
data = prime.factors(num)
df = pd.DataFrame(data, columns=["prime"])

# Output to html
bk.output_file("primes.html", title="Prime Factor Visualization")

# Randomly generate int(x,y) positions for each factor (bound to 10, maybe 7)
# Positions must be unique in either x or y
# This could be cleaner
x=[]
y=[]
for factor in data:
    xcoord = rn.randint(0,10)
    ycoord = rn.randint(0,10)
    x.append(xcoord)
    y.append(ycoord)
예제 #19
0
파일: 47.py 프로젝트: jackoe/Project-Euler
def consecutiveWorks(looplength, i):
	for j in xrange(looplength):
		if not(len(set(pyprimes.factors(i+j)))) == looplength:
			return False
	return True
예제 #20
0
import pyprimes

max = 50

i = 0
curr = 0
print "Case #1:"

while (i < max):
    num = "1{0}1".format("{0:014b}".format(curr))
    is_prime = False
    arr = []
    for base_1 in range(9):
        base = base_1 + 2
        if pyprimes.miller_rabin(int(num, base)):
            is_prime = True
            break
        else:
            arr.append(str(pyprimes.factors(int(num, base))[0]))
    if not is_prime:
        print num + ' ' + ' '.join(arr)
        i += 1
    curr += 1
예제 #21
0
"""Largest prime factor

[Problem 3](https: // projecteuler.net / problem=3)

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?"""

from pyprimes import factors
import time
start = time.perf_counter_ns()
number = 600851475143

largest_prime_factor = max(factors(number))
end = time.perf_counter_ns()
message = "Greatest prime factor of '{0:,d}': '{1:,d}'\nElapsed: {2:,d} ns".format(
    number, largest_prime_factor, end - start)

print(message)
예제 #22
0
a1=1
a2=2
while(a2 <= 4000000):
    na2=a1+a2
    a1=a2
    a2=na2
    if(a1 % 2 == 0):
        sums=sums+a1
print(sums)

#######3. Largest Prime Factor
### Pyprimes
import scipy
import pyprimes
pyprimes
pyprimes.factors(600851475143)

max(pyprimes.factors(600851475143))

####
n=600851475143
i=2
while (i * i < n):
    if(n % i == 0):
        n=n/i
    i=i+1
print(n)

####### 4. Palindrome Product
list_a = ['1','2','3','4','5','6','7','8']
list_a[::-1]