C#

C# Chen Sayısı Bulma

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde kullanıcının girdiği sayının asal olup olmadığına bakalım ve sonrasında bu sayının chen sayısı var mı ona bakalım. Öncelikle Chen sayısından bahsedelim. Chen sayısı, asal bir sayının 2 fazlasıda asal sayısı ise bu iki sayıya Chen sayıları denir. Neden 2 fazlası olduğunu bende bilmiyorum 🙂 Neyse orasını fazla kurcalamadan biz işimize bakalım ve öncelikle kullanıcıdan bir sayı isteyip bunu bir değişkene atayalım.

Console.Write("Sayı Girin: ");
int sayi = Convert.ToInt32(Console.ReadLine());

Şimdiii bu sayının asal olup olmadığına bakalım. Asal sayılar ise, 1 ve kendisinden başkasına bölünmeyen sayılara deniyor ve C#’ta sayının asal olup olmadığını bulan hazır bi fonksiyon yok, yani kendi göbeğimizi kendimiz keseceğiz 🙂 Bir sayı kendisinin yarısından fazlasına tam bir şekilde bölünemez, o yüzden 2’den başlayarak sayi değişkeninin yarısına kadar bi döngü ile dönecek ve her adımda kullanıcının girdiği sayının o anki adımdaki sayıyla bölümünden kalana bakacağız. Kalan sıfır ise kullanıcının girdiği sayı asal sayı değildir. Eğer döngü sonuna kadar hiç sıfır olmazsa, o zaman sayı asal sayıdır. Tabi bu kontrolüde dışarıda oluşturduğumuz bool tipteki bir değişken sayesinde yapacağız. Biraz kafa karıştırmış olabilirim fakat kodunu şöyle yazayım da açıklayıcı olsun;

bool asal = true;
for(int i = 2; i < sayi / 2; i++)
{
    if(sayi % i == 0)
    {
        asal = false;
        break;
    }
}

Evet şimdi daha açıklayıcı olmuştur 🙂

Şimdi sayı asal ise 2 fazlasını alalım ve bu sayınında asal olup olmadığına bakalım ve bu sayıda asal ise bunların Chen sayısı olduğunu kullanıcıya bildirelim;

if(asal)
{
    int sayiArtiIki = sayi + 2;
    for(int i = 1; i < sayiArtiIki / 2; i++)
    {
        if(sayiArtiIki % i == 0)
        {
            asal = false;
            break;
        }
    }
    if(asal)
        Console.WriteLine("{0} ve {1} Sayıları Chen Sayılarıdır", sayi, sayiArtiIki);
else
        Console.WriteLine("{0} Sayısı Asal Sayıdır Fakat Chen Sayısı Yoktur", sayi);
}
else
    Console.WriteLine("{0} Sayısı Asal Sayı Değildir, Chen Sayısıda Yoktur", sayi);

Evet bu dersimizde bu kadardı, daha toplu olması için yazdığımız kodları aşağıya bırakıyorum;

Console.Write("Sayı Girin: ");
int sayi = Convert.ToInt32(Console.ReadLine());
bool asal = true;
for(int i = 2; i < sayi / 2; i++)
{
    if(sayi % i == 0)
    {
        asal = false;
        break;
    }
}
if(asal)
{
    int sayiArtiIki = sayi + 2;
    for(int i = 1; i < sayiArtiIki / 2; i++)
    {
        if(sayiArtiIki % i == 0)
        {
            asal = false;
            break;
        }
    }
    if(asal)
        Console.WriteLine("{0} ve {1} Sayıları Chen Sayılarıdır", sayi, sayiArtiIki);
else
        Console.WriteLine("{0} Sayısı Asal Sayıdır Fakat Chen Sayısı Yoktur", sayi);
}
else
    Console.WriteLine("{0} Sayısı Asal Sayı Değildir, Chen Sayısıda Yoktur", sayi);

Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu