26 Mart 2013 Salı

52 - While Döngüsü... Asal Sayı Örneği...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilecek sayının asal olup olmadığını bulacak olan program?

            Console.Write("Sayıyı giriniz:");
            int sayi = int.Parse(Console.ReadLine());
            bool asaldegil = false;  // Bool türünde değişkenler sadece true veya false değeri... 

            if (sayi <= 0) // sıfır veya sıfırdan küçük sayılar asal değildir... Sayının asal olması için pozitif olması gerekir... 
                Console.WriteLine("Asal sayılar sıfırdan küçük olmaz...");
            else
            {
                // Döngümüzü 2 den başlatıp girilen sayıya kadar götürüyoruz... 
                int i = 2;
                while(i < sayi)
                {
                    // Girilen sayıyı kendisine kadar olan bütün sayılara bölüyoruz... 
                    // Bir yerde sıfırı bulduğumuz anda sayının asal olmadığı anlaşılıyor... 
                    if (sayi % i == 0)
                    {
                        asaldegil = true; // sayı asal değilse bu değişkenimizi true yapıyoruz...
                        break; // Döngüde devam eden sayılara bakmamıza gerek yok, çünkü buraya girdiyse asal sayı değildir..
                        // break komutu yazıldığı for döngüsünü sonlandırmak için kullanılır... 
                    }
                    i++;
                }

                if (asaldegil) // İşte burada true false durumu işimize yaramış oluyor... 
                    Console.WriteLine(sayi + " Asal Sayı Değildir..."); // True ise asal sayı değildir... 
                else
                    Console.WriteLine("Asal Sayıdır..."); // false ise asal sayıdır... 

                // Bu arada if(asaldegil) diye yazabiliyoruz... Çünkü bool türündeki değişkenler sadece iki değer alabilir...
                // True veya false... Bu sebeple if şartında asaldegil==true yazmamıza gerek yoktur... 
            }

            Console.ReadLine();
        }
    }
}