C# Girilen sayının Asal olup olmadığını kontrol eden program.

C#:
int sayi = Convert.ToInt32(Console.ReadLine());
            int asal = sayi;
            int sayac = 0;
            for (int i = 1; i <= sayi; i++)
            {
                if (asal % i == 0)
                {
                    sayac += 1;
                }

            }
          
            if (sayac >= 3)
            {
                Console.WriteLine("sayı asal değildir.");
            }
            else if (sayac <= 2)
            {
                Console.WriteLine("sayı asaldır.");
            }
            Console.ReadKey();
Basitleştirilmiş halidir.

Yorumlar

Fonksiyon hali lazım. 10 üzerinden 2'lik bir blog. Kod anlatımı da yok. Kimse gelip buradan kod almayacak.
 
Fonksiyon hali lazım. 10 üzerinden 2'lik bir blog. Kod anlatımı da yok. Kimse gelip buradan kod almayacak.
Kod anlatımı olmasına gerek yok. Zaten programlama bilmek için problem çözme yeteneğinin olması gerekir.
Problem çözme yeteneğine sahip bir kişi bu programın mantığını çok rahat kavrayacaktır. Fonksiyon halinden kastınız nedir?
 
Burada Utility fonksiyonunu neden kullanmam gerektiği açıklarsanız size hak verebilirim.
Map, TreeMap gibi veri yapıları verileri depolarken gelen verinin hash'ini alır. Hash fonksiyonu da asal sayı kontrolü yapar. Asal sayı, en yakın sonraki asal sayı, hash alma gibi fonksiyonlar Util fonksiyonlarıdır.

Tecrübe.
 
Map, TreeMap gibi veri yapıları verileri depolarken gelen verinin hash'ini alır. Hash fonksiyonu da asal sayı kontrolü yapar. Asal sayı, en yakın sonraki asal sayı, hash alma gibi fonksiyonlar Util fonksiyonlarıdır.

Tecrübe.
Bilgi için teşekkürler. Bununla ilgili Türkçe kaynak bulamadım , Nereden çalıştınız bu fonksiyona? Türkçe, İngilizce kaynak önerebilir misiniz? En fazla çalıştığınız/ En yararlı olan kaynak nedir?
 
Bilgi için teşekkürler. Bununla ilgili Türkçe kaynak bulamadım , Nereden çalıştınız bu fonksiyona? Türkçe, İngilizce kaynak önerebilir misiniz? En fazla çalıştığınız/ En yararlı olan kaynak nedir?
Bir yerden çalışmadım mantık oturunca gerisi geliyor. Arkadaşım anlatmıştı kısaca. Uzun zaman oluyor zaten öğreneli.
 
Verimsiz. Bir kere sayının sonuna kadar kontrol etmeye gerek yok. Eğer bir sayı yarısına kadar kontrol edildiğinde herhangi bir tam bölenle karşılaşmadıysa yarısından sonra zaten karşılaşmayacak.

2 hariç hiç bir çift sayı asal değildir. Dolayısıyla eğer bir sayı çiftse asal mı değil mi diye kontrol etmeye gerek yok. Tekse de, tek sayıların çift bölenleri olmaz genelde. 15'i ele alalım, bölenleri 3 ve 5. 21, bölenleri 3 ve 7. Dolayısıyla çift sayılarla da kontrol etmeye gerek yok bölenleri. 3'den başlayıp ikişer bir şekilde tek bölenleri kontrol etmek daha verimli olacak. Eğer sayı yarısına varmadan birden başka herhangi bir şeye bölündüyse algoritma duracak.

Aşağıdaki örnek çok daha verimli. 0-100 arasında 25 adet asal sayı var. Bu 25'ini internetten alıp kontrol de ettirebilirsin her biri için. Gerek duymadım kendim ezbere bildiğimden.
C#:
bool isPrime(int number)
{
    if(number == 2) return true;
    if(number % 2 == 0 || number == 1) return false;
    for(int i = 3; i < number / 2; i+=2)
    {
        if (number % i == 0) return false;
    }
    return true;
}
List<int> numbers = new List<int>();
int count = 0;
for(int i = 0; i < 100; i++)
{
    if (isPrime(i))
    {
        count++;
        numbers.Add(i);
    }
}

if(count != 25)
{
    Console.Error.WriteLine("Algorithm is wrong!");
}
else
{
    Console.WriteLine($"All {count} prime number is successfully detected! Here is the list of the prime numbers: ");
    foreach(int number in numbers)
    {
        Console.Write($" {number}");
    }
}
 

Blog girdisi detayları

Ekleyen
330856
Okuma süresi
1 dakika okuma
Görüntüleme
5.344
Yorumlar
13
Son güncelleme
Değerlendirme
4,00 yıldız 1 değerlendirme

Yazılım kategorisindeki diğer girdiler

330856 adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Geri
Yukarı