#Programma horende bij de tekst "Priemracen"
import sympy
import time
team1 = 0
teamk = 0
maxT1 = 0
maxTk = 0
N = 2000000
p = 2
Eq = []
T1 = []
K = 4
t0 = time.process_time()
for j in range(N):
p = sympy.nextprime(p)
if p % K == 1:
team1 += 1
else:
teamk += 1
if team1 == teamk:
Eq.append(p)
if team1 > teamk:
T1.append(p)
if maxT1 < team1 - teamk:
maxT1 = team1 - teamk
else:
if maxTk < teamk - team1:
maxTk = teamk - team1
t1 = time.process_time()
print("Gelijk spel:", len(Eq))
print("Maximale winst Team 1:", maxT1)
print("Maximale winst Team ", K-1, ":", maxTk)
print("Team1 wint: ", len(T1))
print("priem", N, p)
print("Tijd:", t1-t0)
print("Ready")
#print(T1)
T1 = []
N = 50
p = 2
for j in range(N):
p = sympy.nextprime(p)
if p % 4 == 1:
T1.append(p)
lt1 = len(T1)
plt1 = 2^lt1
print(lt1, T1)
for n in range(plt1):
k = n
cnt = 0
P = 1
while k > 0:
if k % 2 == 1:
P *= T1[cnt]
k = k // 2
cnt += 1
M = P * P + 4
MP = sympy.factorint(M)
for mp in MP:
if mp % 4 == 3:
print ("mp", mp)
print(n, P, MP)
print("Ready")
def maak_priemrij(n):
# Deze functie genereert alle priemgetallen kleiner of gelijk aan n
if n < 2:
return []
rij= list(range(2, n+1))
priemrij = []
pr = 1
while pr <= n**(1/2):
pr = rij.pop(0)
priemrij.insert(len(priemrij), pr)
rij = list(x for x in rij if (x % pr != 0))
return(priemrij + rij)
G = 1000000
priemrij = maak_priemrij(G)
priemrij1 = list(x for x in priemrij if (x % 4 == 1))
priemrij3 = list(x for x in priemrij if (x % 4 == 3))
def alb(rij, n):
return(len(list(x for x in rij if (x <= n))))
rij = [1,3,4,5,6]
alb(rij, 6)
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (15, 9)
def maak_plot(priemrij1, priemrij3, N):
x = list(range(0, N))
y1 = list(range(0, N))
y3 = list(range(0, N))
for j in range(0, N):
y1[j] = alb(priemrij1, j)
y3[j] = alb(priemrij3, j)
plt.plot(x, y1, label=' van de vorm $4n+1$')
plt.plot(x, y3, label=' van de vorm $4n+3$')
plt.title('Aantal priemgetallen kleiner of gelijk aan $x$')
plt.legend()
plt.show()
return
N = 100
maak_plot(priemrij1, priemrij3, N)
# Programma 5b: Dirichlet deel 2
N = 1000
maak_plot(priemrij1, priemrij3, N)
N = 100000
x = list(range(0, N))
y1 = list(range(0, N))
y3 = list(range(0, N))
y = list(range(0, N))
for j in range(0, N):
y1[j] = alb(priemrij1, j)
y3[j] = alb(priemrij3, j)
y[j] = y3[j] - y1[j]
plt.plot(x, y, label='aantal van de vorm $4n+3$ - aantal de vorm $4n+1$')
plt.title('Verschil in aantal kleiner dan $x$')
plt.legend()
plt.show()