Asallık Testi
Asal sayıların takip etmesi gereken bilinen bir kalıp yoktur.Bu nedenle verilen bir sayının asal olup olmadığını anlamak kolay bir iş değildir.Eğer n bir asalsayı ise 2 ile √n arasında hiçbir sayıya bölünmemesi gerekir.Eğer n sayısı çok büyükse hesaplmalar kabul edilebilir sınırda olmayabilir.Bir bölme işleminin 1 milisaniye cpu zamanı harcadığı düşünülürse 101 basamaklı(10 üzeri 100) bir sayının asallığının hesaplanması için 1.9*10 üzeri 41 yıl gerekecektir.Genellikle kullanılan Deterministik ve Olasılıksal asal sayı testleri ise çok karmaşık olmakta ve yalnız belirli sınırlamalar için geçerli olmaktadır.
Örnek : 757 sayısının asal olduğunu araştıralım.
√757≈27,51 olduğundan 2 ile 27 arasındaki asal sayı bölenlerinin kontrolü gerçekleştirilecektir.Bu nedenler 757 sayısının 2,3,5,7,9,11,13,17,19,23 sayılarına tam bölünmesi gerekmektedir.Verilen sayı tek olduğundan yegane çift asal sayı olan 2 ye bölünüp bölünmediğine bakmak gerekmeyecektir.
757/3=252,33 757/5=151,4
757/7=108,14 757/11=68,82
757/13=58,23 757/17=44,53
757/19=39,84 757/23=32,91
görüldüğü üzere 757 sayısı bu asallardan hiçbirine bölünmemektedir dolayısla 757 asaldır.
Aşağıda konuda anlatılan örnek Python dilinde kodlara dökülmüştür.
Asal sayıların takip etmesi gereken bilinen bir kalıp yoktur.Bu nedenle verilen bir sayının asal olup olmadığını anlamak kolay bir iş değildir.Eğer n bir asalsayı ise 2 ile √n arasında hiçbir sayıya bölünmemesi gerekir.Eğer n sayısı çok büyükse hesaplmalar kabul edilebilir sınırda olmayabilir.Bir bölme işleminin 1 milisaniye cpu zamanı harcadığı düşünülürse 101 basamaklı(10 üzeri 100) bir sayının asallığının hesaplanması için 1.9*10 üzeri 41 yıl gerekecektir.Genellikle kullanılan Deterministik ve Olasılıksal asal sayı testleri ise çok karmaşık olmakta ve yalnız belirli sınırlamalar için geçerli olmaktadır.
Örnek : 757 sayısının asal olduğunu araştıralım.
√757≈27,51 olduğundan 2 ile 27 arasındaki asal sayı bölenlerinin kontrolü gerçekleştirilecektir.Bu nedenler 757 sayısının 2,3,5,7,9,11,13,17,19,23 sayılarına tam bölünmesi gerekmektedir.Verilen sayı tek olduğundan yegane çift asal sayı olan 2 ye bölünüp bölünmediğine bakmak gerekmeyecektir.
757/3=252,33 757/5=151,4
757/7=108,14 757/11=68,82
757/13=58,23 757/17=44,53
757/19=39,84 757/23=32,91
görüldüğü üzere 757 sayısı bu asallardan hiçbirine bölünmemektedir dolayısla 757 asaldır.
Aşağıda konuda anlatılan örnek Python dilinde kodlara dökülmüştür.
Kod:
import math
print("""Asal Sayı Tespit Edici V1.0""")
print("""Creator:Kerem Saygın""")
while True:
sayı=input("Bir Tam Sayı Girin:")
if sayı.isnumeric():
sayı=int(sayı)
kareKok=math.sqrt(sayı)
kareKok=int(kareKok)
if sayı%2==0:
print("Girilen Sayıl asal Değildir.")
continue
if sayı==1:
print("Girilen Sayı asal Değildir")
continue
sayac=0
for i in range(2,kareKok+1):
deger=sayı%i
if deger==0:
sayac=sayac+1
if sayac==0:
print("Girilen Tam Sayı Asaldır")
else:
print("Girilen Tam Sayı Asal Değildir.")
else:
print("Lütfen Tam Sayı Değeri Girin")