C# N Sayısına Kadar Olan Asal Sayıları Bulma Kodu
-
Hoca derste sormuştu. nette sayının asal olup olmadığını gösteren kod var ama bu şekilde seriyi kontrol edene rast gelmedim.
using System; namespace dpx { class dupiclass { public static void Main() { int n = Convert.ToInt32(Console.ReadLine()); int m = n; for(int x=1;x<=m;x++) { for(int i=2;i<=n;i++) { if(i==2 && n==2) { Console.WriteLine(n+" Sayısı Asal Sayıdır."); } if(n % i == 0) { break; } if(i==n-1) { Console.WriteLine(n+" Sayısı Asal Sayıdır."); } } n--; } Console.WriteLine("Uygulamayı Sonlandırmak İçin Bir Tuşa Basınız."); Console.ReadKey(); } } }
işinize yarar :D
-
n sayısının karekokune kadar gidilerek yaparsan erken vakitte asal olup olmadığını anlarsın.
http://www.ontedi.com/javascript/javascript-ile-asal-sayi-islemleri
Belki lazım olur.
-
Evet işlemi hızlandırmak için güzel bir yöntem.
yanlız soru seninkinden farklı, ama evet senin yöntemin bana hız kazandıracak.
DuPi tarafından 29/Eki/16 21:29 tarihinde düzenlenmiştir -
DuPi bunu yazdı
Evet işlemi hızlandırmak için güzel bir yöntem.
yanlız soru seninkinden farklı, ama evet senin yöntemin bana hız kazandıracak.
Hız önemlidir hocam. Senin programın n^2 zamanda çalışır. Amacın her zaman çalışma zamanını logn lere çekmeye çalışmak olsun. Algoritma analizi dersi alırsan önemini anlarsın
-
performans olarak şunu kullansan daha rahat edersin :
http://www.codeproject.com/Articles/2728/C-BigInteger-ClassisProbablePrime()
-
Bir sayının asal olup olmadığını bulmak için çok daha kolay bir yol var. Eğer bir sayı asalsa 6n-1 veya 6n+1 formülüne uyması gerekmektedir. Burdan doğrulanabilir.
Ancak bu formül sadece doğrulama amaçlı bu formülde n yerine herhangi bir sayı koyarak kesinlikle asal sayı elde edebilirsiniz diye bir şey yok ancak 3'ten büyük her asal sayı bu formüle uyar.
-
Lightsaber bunu yazdı
Bir sayının asal olup olmadığını bulmak için çok daha kolay bir yol var. Eğer bir sayı asalsa 6n-1 veya 6n+1 formülüne uyması gerekmektedir. Burdan doğrulanabilir.
Ancak bu formül sadece doğrulama amaçlı bu formülde n yerine herhangi bir sayı koyarak kesinlikle asal sayı elde edebilirsiniz diye bir şey yok ancak 3'ten büyük her asal sayı bu formüle uyar.
bu formül sadece 2 ve 3 e bölünemediğini ispat ediyor ayrıca bir olayı yok, en sağlam yöntem ilk yorumdaki yöntem zaten bu ikisini ilk denettiriyor
-
sLeymN bunu yazdıDuPi bunu yazdı
Evet işlemi hızlandırmak için güzel bir yöntem.
yanlız soru seninkinden farklı, ama evet senin yöntemin bana hız kazandıracak.
Hız önemlidir hocam. Senin programın n^2 zamanda çalışır. Amacın her zaman çalışma zamanını logn lere çekmeye çalışmak olsun. Algoritma analizi dersi alırsan önemini anlarsın
O(1) varken logn e ne gerek var yahu :D madem konusu açıldı. Herhangi bir algoritmayı her zaman o(1) düzeye çekmek mümkün müdür? Recursive fonk yazarak bellekten ödün verip o(1) çekebilir miyiz? Yoksa en iyi çalışma zamanı her algoritma da farklılık mı gösterir?? Mesela benim algoritmam o(2n) olsun bunu o(1) düzeyde çalıştırabilmek mümkün olsun. Bu analizi. Nasıl yapabilirim izlenilen bir. Yol var mı hocam?
-
hocam böyle bi video buldum bulunmuş en büyük asal sayıyı böyle bulmuşlar bayaa değişik bi yöntem :
< ="//www.youtube.com//lEvXcTYqtKU" width="425" height="350">
https://www.youtube.com/watch?v=lEvXcTYqtKU
sercoo tarafından 30/Eki/16 21:25 tarihinde düzenlenmiştir -
Konunun bu kadar rövaşa çıkacağını tahmin etmemiştim. bir iki bilen yorum yapar sandım :D tüm programcılar dökülüyor :)
algoritma dersi görüyoruz. ama o kadar ileri değil normal daha algoritma yazmayı öğreniyoruz.
-
Asal sayi hesaplamasi programlama ve algoritmada zaten basli basina bir konu dostum. Oyle asal sayi "kendine ve bire bolunebilen hede hode..." degil yani...
Heleki sifreleme falan muhabbetine (encrypt/decrypt) cok kan dokuluyor yani asal sayi onemli. Hesaplamanmasi kanitlanmasi felan filan...