Bu mu zamandan tasarruf. Size birşey soracağım Sayın gereksizyorumcu. 3 basamaklı bir tek sayının asal olup olmadığını bu yöntemle test etmek ne kadar zaman alır tahmin edersiniz herhalde. Bu arada bilgisayar destekli matematiği de konuya dahil edeyim. Ben bütün 3 basamaklı asal sayıları listeleyen bir macro yazdım. Hepsi elimde var. Ama bunlardan herhangi birinin niye asal olduğunu bilmedikten sonra, veya onun asal olduğunu kendim gösteremedikten sonra benim için hiçbir önemi yok. Daha önceden de y*****tım. Bu macronun algoritmasında sizin bahsettiğniz tekniği kullandım ama neye yarar. Benimkisi sadece kalemle uzun süren bir işlemi bilgisayara yaptırmak. Şunu söylemek istiyorum. Kağıt kalemle 3 basamaklı sayıları makul bir zamanda kağıda dökebilen insanı alnından öperim. Benim diyen çıksın.
3 basamaklı bir sayının asal olup lmadığınıtest etmek için
√999<32 oluğundan
3-5-7-11-13-17-19-23-29-31 sayılarına bölünüp bölünmediğine bakmak yeterlidir
10 asal sayı 10 tane kural. Bir de bunu 450 tane sayı için yapıyorsunuz. Bayağı makul bir zaman çıkacak ortaya.
mesela sayı 631 se 29 ve 31 i de çıkartırız kalan sayılara bölünüp bölünmediğine bakarız.
8 tane bölme işlemi yapacağız 3,5 ve 11 ile bölmeyi işlemden saymazsak 5 bölme işlemiyle testi tamamlarız max. 5 dakika
ve 631 asalmış denedim şimdi
siz galiba tüm 3 basamaklı sayıların asallığını test edip hangileri asaldır hangileri değildiri belirlemek istiyorusunuz
onun için Eratosthenes Yöntemi var.
tüm sayılar yazılıp sırayla silme işlemi yapılır. bu da 1000 e kadarki sayılar için çok uzun sürmez bence 1 saat falan sürceğini sanmıyorum.
Sayın gereksizyorumcu, yine başa döndük. Şimdi bir kişi, asal olup olmadığını merak ettiği bir sayının asallık testini yapmak istediğinde, 13, 17, 19, 23, 29, 31 sayılarına ait bölünebilme kurallarını mı ezberleticez. Yok mu bunun başka hal çaresi?
hocam tek sayı üstünde kurala ne gerek var. altı üstü 3 basamaklı bir sayı 13 e bölersiniz olur biter, sonra bir de 17 ye bölersiniz , sonra bir de 19 . yani 3 basamalı herhangi bir sayı için en fazla bölüneni 3 basamaklı böleni 2 basamklı en fazla 5 bölme işlemiyle sonucu belirleyebiliyoruz. bu da 5 dakika sürmez zaten hatta rakamlara aşina bir insan için bu işlem 2 dakika bile sürmez.
O yöntemi ben de biliyorum. Pek de kullanışlı bulmuyorum. Belki 3 basamaklılar için makul sayılabilir ama bir de bunun 4-5-6.... basamaklısı da var.
Yalnız sayfanın altındaki
asal = elek [ 2 .. ]
elek ( p: xs ) = p: elek [ x | x <- xs , x ` mod `p > 0 ]
kodundan bir şey anlamadım. İngilizceden çeviri oldu ama bazı kelimelerin karşılığını tam vermedi. Ne olduğunu biliyor musunuz?
Bir bilimadamına bu yorumu yakıştıramadım. Sizin dediğiniz mantıkla bölünebilme kurallarına hiç ihtiyaç yok. Millet bölsün dursun.
Foruma üye olmana gerek yok! Facebook hesabınla yorumlarını bekliyoruz!