Ejemplo n.º 1
0
def factors(n):
    p = list(sieve(int(n / 2)))

    primes = []
    for ii in range(len(p)):
        if n % p[ii] == 0:
            primes.append(p[ii])

    d = n
    e = []
    for a in range(len(primes)):
        while d % primes[a] == 0:
            d = d / primes[a]
            e.append(primes[a])

    if np.prod(e) != n:
        print('oops!, n may be prime')

    n_occurence = []
    for c in range(len(primes)):
        n_occurence.append(e.count(primes[c]))

    n_factors = np.prod(np.array(n_occurence) + 1)

    return n_factors, primes, e
Ejemplo n.º 2
0
def main():
	MAX = 10 ** 6
	primes = sieve(MAX + 1)
	sprimes = set(primes)
	
	longest = 0
	sums = {}
	for n in xrange(1, MAX + 1):
		s, nums, snums = n, [], set()
		while s <= MAX:
			if s in sums:
				break
			nums.append(s)
			snums.add(s)
			t = spd(s, primes, sprimes)
			sums[s] = t
			s = t
			if s in snums:
				length = len(nums) - nums.index(s)
				if length > longest:
					longest = length
					ans = nums[nums.index(s)]
					print ans
				break
	print ans
Ejemplo n.º 3
0
def main():
    MAX = 10**6
    primes = sieve(MAX + 1)
    sprimes = set(primes)

    longest = 0
    sums = {}
    for n in xrange(1, MAX + 1):
        s, nums, snums = n, [], set()
        while s <= MAX:
            if s in sums:
                break
            nums.append(s)
            snums.add(s)
            t = spd(s, primes, sprimes)
            sums[s] = t
            s = t
            if s in snums:
                length = len(nums) - nums.index(s)
                if length > longest:
                    longest = length
                    ans = nums[nums.index(s)]
                    print ans
                break
    print ans
Ejemplo n.º 4
0
def main():
	MAX = 5 * 10 ** 7
	
	d = sieve(int(MAX ** 0.5) + 1)
	t = sieve(int(MAX ** (1.0/3)) + 1)
	q = sieve(int(MAX ** (0.25)) + 1)
	
	numbers = set()
	for qi in q:
		for ti in t:
			for di in d:
				n = qi * qi * qi * qi + ti * ti * ti + di * di
				if n < MAX:
					numbers.add(n)
				else:
					break
	print(len(numbers))
Ejemplo n.º 5
0
def main():
	MAX = 100
	primes = sieve(MAX)
	ways = [ 1 ] + [ 0 ] * MAX
	for p in primes:
		for i in xrange(p, MAX + 1):
			ways[i] += ways[i - p]
	for i in xrange(len(ways)):
		if ways[i] > 5000:
			print i
			return
Ejemplo n.º 6
0
def main():
    MAX = 100
    primes = sieve(MAX)
    ways = [1] + [0] * MAX
    for p in primes:
        for i in xrange(p, MAX + 1):
            ways[i] += ways[i - p]
    for i in xrange(len(ways)):
        if ways[i] > 5000:
            print i
            return
Ejemplo n.º 7
0
def n_cons_primes(limit, sieve_limit):
    primes = sieve(sieve_limit)
    n_max = 0
    ab = 0
    bb = 0
    for a in range(-limit, 1, limit):
        for b in range(-limit, 1, limit):
            n = 0
            break_ = 0
            value = (n**2) + (a * n) + b
            while break_ == 0:
                if value in primes:
                    n += 1
                else:
                    break_ = 1
                    n_temp = n
            if n_temp > n_max:
                n_max = n
                ab = a
                bb = b
    return n_max - 1, a, b
Ejemplo n.º 8
0
def main():
    MAX = 10**7
    lb = int(MAX**0.5) - 1000
    ub = int(MAX**0.5) + 1000

    primes = [p for p in sieve(ub) if p > lb]

    min_ratio = MAX
    dat_n = None
    for i in xrange(len(primes)):
        for j in xrange(i + 1, len(primes)):
            p1, p2 = primes[i], primes[j]
            n = p1 * p2
            if n > MAX:
                break
            phi = (p1 - 1) * (p2 - 1)
            ratio = n / phi
            if ratio < min_ratio and is_perm(n, phi):
                min_ratio = ratio
                dat_n = n

    print dat_n
Ejemplo n.º 9
0
def main():
	MAX = 10 ** 7
	lb = int(MAX ** 0.5) - 1000
	ub = int(MAX ** 0.5) + 1000
	
	primes = [ p for p in sieve(ub) if p > lb ]
	
	min_ratio = MAX
	dat_n = None
	for i in xrange(len(primes)):
		for j in xrange(i + 1, len(primes)):
			p1, p2 = primes[i], primes[j]
			n = p1 * p2
			if n > MAX:
				break
			phi = (p1 - 1) * (p2 - 1)
			ratio = n / phi
			if ratio < min_ratio and is_perm(n, phi):
				min_ratio = ratio
				dat_n = n
				
	print dat_n
Ejemplo n.º 10
0
from common import sieve

N = 20

lst = range(1, N + 1)
primes = sieve(N)
lcm = 1

for prime in primes:
    while (True):
        found_a_multiple = False
        for i, n in enumerate(lst):
            if n % prime == 0:
                lst[i] /= prime
                found_a_multiple = True
        if found_a_multiple:
            lcm *= prime
        else:
            break

print lcm
Ejemplo n.º 11
0
import numpy as np
from common import sieve


def multi(b):
    out = 1
    for i in range(len(b)):
        out = out * b[i]
    return out


n = 451000
p = list(reversed(sieve(int(n / 2))))
# print(p)

primes = []
for ii in range(len(p)):
    if n % p[ii] == 0:
        primes.append(p[ii])

amax = int(np.ceil(np.log(n) / np.log(primes[0])))
print(amax)

e = np.zeros(len(primes))
print(e)
e_next = np.zeros(len(primes))
e_next[0] = amax
print(e - e_next)
i_last = np.nonzero(e - e_next)[0][0]
print(len(primes))
Ejemplo n.º 12
0
from common import sieve

N = 20

lst = range(1, N+1)
primes = sieve(N)
lcm = 1

for prime in primes:
	while(True):
		found_a_multiple = False
		for i, n in enumerate(lst):
			if n%prime == 0:
				lst[i] /= prime
				found_a_multiple = True
		if found_a_multiple:
			lcm *= prime
		else:
			break

print lcm
Ejemplo n.º 13
0
from common import sieve

n = 2000000
print sum(sieve(n))
Ejemplo n.º 14
0
# What is the value of the first triangle number
# to have over five hundred divisors?

import numpy as np
from common import sieve


def gen_triangle(x):
    tri = 0
    for i in range(1, x + 1):
        tri = tri + i
    return tri


p = list(sieve(70000))


def factors(n, primes):
    if n in primes:
        n_factors = 2
        primes = []
        e = []
    else:
        primes = []
        for ii in range(len(p)):
            if n % p[ii] == 0:
                primes.append(p[ii])

        d = n
        e = []
        for a in range(len(primes)):