def asal_kontrol(x):
for i in range(2,int(x**1/2)+1,1): ## Rasyonel bir sayi kendisini olusturan asal carpanlarindan olusur. Bir sayinin koku sayinin diger asal carpanlarindan daha buyuktur.
if x%i==0:
return True
else:
return False
Asallar = list()
Asallar.append(2)
sayi=3
sayac=1
while len(Asallar) < 10001:
if asal_kontrol(sayi):
Asallar.append(sayi)
sayi+=2
sayac+=1
else:
sayi+=2
print(Asallar)
Kodum calismiyor.
Hatam nerede bilmiyorum yardimci olur musunuz?
Siz yazsaniz nasil yazardiniz?
from math import *
def isPrime(n):
if (n % 2 == 0 and n != 2 or n == 1):
return False
for i in range(2, int(sqrt(n) + 1)):
if (n % i == 0):
return False
return True
c = 0
n = 0
while c < 10001:
if (isPrime(n)):
c += 1
print(f"prime found: {n}, count: {c}")
n += 1
Denedim calisiyor. Sonsuz donguye girmiyor. 10001. asal sayiyi hemen bulamaz o kadar.
İsterse 10001'den cok cok kucuk sayilarla dene. 2, 5, 12, 100, 608 falan.
For bittiginde sayac 2 ise bu asal sayidir ve bunu kaydeder. Cunku sadece 1 ve kendisine bolunmus.
tekrar diger sayiyi dener. Sayacin sifirlanmasi gerekir bu yuzden. Taa ki 10001. asal sayiyi bulmak icin.