コード例 #1
0
def solve():
    result = 0 #@UnusedVariable
    start = time.clock()
    i = 0
    primes = {}
    truncatable_primes = []
    for i in range(0, 7):
        border = ['37']
        if i == 0:
            border = ['2357']
        digit_sets = border + i*['1379'] + border
        for digits in produce(digit_sets):
            number = "".join(digits)
            nums = sorted(set([int(n) for n in generate_left_truncated_string(number)] + [int(n) for n in generate_right_truncated_string(number)]))
            all_are_primes = True
            for n in nums:
                if n < 10:
                    continue
                try:
                    is_p = primes[n]
                except KeyError, e:
                    is_p = miller_rabin(n, 20)
                    primes[n] = is_p 

                if not is_p:
                    all_are_primes = False
            if all_are_primes:
                truncatable_primes.append(int(number)) 
コード例 #2
0
 def check_number(self, number):
     """
     Check if number is prime and is Bluma number
     :param number:
     :return:
     """
     return number % 4 == 3 and miller_rabin(number)
コード例 #3
0
def solve():
    result = 0 #@UnusedVariable
    
    start = time.clock()
    pandigits = '123456789'
    primes = []
    for i in range(9, 0, -1):
        for pandigital_num in all_perms(pandigits[:i]):
            n = int(pandigital_num)
            if(miller_rabin(n)):
                primes.append(n)
        if len(primes) > 0:
            break

    result = max(primes)     
    print("The largest n-digit pandigital prime is %(result)s" % vars())
    print(time.clock() - start)
コード例 #4
0
def solve(ratio):
#    ps = sieve_eratosthenes(10**8)
#    highest_prime = ps[-1]
#    primes = list_to_dict(ps, True)

#    print('Sieve prepared')
    num_numbers = 0
    num_primes = 0
    i = 0
    for layer in spiral_layer_edges():
        i += 1
        for n in layer:
            if miller_rabin(n, 50):
                num_primes += 1
        num_numbers += len(layer)
        if Fraction(num_primes, num_numbers) < ratio and i > 1:
            print(num_primes, num_numbers)
            return 1 + 2*(i-1)
コード例 #5
0
ファイル: problem012.py プロジェクト: eamuntz/Project-Euler


'''

import prime
import math

primes = prime.sieve(100)
not_found = True
triangle_num =3 
counter_num =3
while not_found:
	factored_num = triangle_num
	factor_counter = 1
	if not prime.miller_rabin(triangle_num):
		for i in primes:
			factor_pow=0
			while factored_num%i ==0:
				factor_pow+=1
				factored_num=factored_num/i
			factor_counter*=(factor_pow+1)
			if factored_num ==1 :
				break
		if factor_counter >500:
			print triangle_num
			not_found = False
	triangle_num+= counter_num
	counter_num+=1

コード例 #6
0
ファイル: bbs_generator.py プロジェクト: qperez/blumblumshub
 def __is_good_prime(self, number):
     return number % 4 == 3 and prime.miller_rabin(number)
コード例 #7
0
def isPrime(n):
    return miller_rabin(n)
コード例 #8
0
 def check_number(self, number):
     return miller_rabin(number)
コード例 #9
0
def isPrime(n):
	if dicPrime.has_key(n):
		return dicPrime[n]
	else:
		dicPrime[n] = miller_rabin(n)
		return dicPrime[n]
コード例 #10
0
def test_miller_rabin_with_prime():
    assert miller_rabin(53, 2)
コード例 #11
0
def test_exception_in_miller_rabin():
    with pytest.raises(OutOfRange):
        miller_rabin(23, 23)
コード例 #12
0
def test_miller_rabin_with_non_prime():
    assert miller_rabin(25, 3) == False
コード例 #13
0
ファイル: main.py プロジェクト: olegario96/ine5429
import prime
import randomnumber
import sys

if __name__ == '__main__':
    arg = sys.argv[len(sys.argv)-1]

    n = 0
    is_prime = False

    if arg == '--fermat':
        while not is_prime:
            n = randomnumber.multiply_with_carry()
            is_prime = prime.fermat(n)
        print('Random number generated with MWC: {}'.format(n))
        print('Is prime by fermat? {}'.format(is_prime))
    elif arg == '--miller':
        while not is_prime:
            n = randomnumber.multiply_with_carry()
            is_prime = prime.miller_rabin(n)
        print('Random number generated with MWC: {}'.format(n))
        print('Is prime by miller? {}'.format(is_prime))