Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from multiprocessing import Process
- from random import randint
- from time import time
- #import numpy as np
- x = 0
- def isprime(n):
- if n%2==0 or n%3==0 or n%5==0 or n==1: return(False)
- for i in range(7, 10000, 2):
- if n%i==0: return False
- return True
- def isprime_ferm(n):
- #if isprime(n):
- for i in range(1):
- a = randint(2,n-1)
- r = a**(n-1)%n
- if r != 1:
- print('neaet')
- return(False)
- print('truae')
- return(True)
- def itstimetostop():
- global x
- x = 1
- #
- # def fnmp(num,s,e):
- # t = time()
- # if s%2==0:
- # s-=1
- # elif s==2: s=3
- #
- # np.arange(s, e, 2)
- #
- #
- # print(' ', time() - t, 'sec','true')
- #
- def f(num,s,e):
- t = time()
- if num%2==0:
- print(' ', time() - t, 'sec', 'false')
- itstimetostop()
- return False
- if s==2:
- s+=1
- elif s%2==0: s-=1
- for i in range(s,e,2):
- if num%i==0:
- itstimetostop()
- break
- itstimetostop()
- print(' ', time() - t, 'sec','true')
- def divide(n, p=4): # p = кол-во потоков
- parts = []
- n = int(n**0.5)
- for i in range(1, p+1):
- part = int(n / p * i)
- parts.append(part)
- return parts
- if __name__ == '__main__':
- threads = []
- num = 878761296072214601 #878761296072214601
- print(len(str(num)))
- parts = divide(num)
- for i in range(len(parts)):
- if i != 0:
- s = e
- e = parts[i]
- else:
- s = 2
- e = parts[0]
- p = Process(target=f, args=(num,s,e))
- threads.append(p)
- p.start()
- print(p)
- for pr in threads:
- p.join()
- print(pr)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement