6 Nisan 2009

C# ile Mükemmel Sayılar

Verilen limitler arasındaki kusursuz sayıların yani mükemmel sayıların tespitini yapan programı C#.NET dilini kullanarak kodlayalım.

Bilgi:

Kusursuz sayı asal çarpanlarının toplamı kendisine eşit olan sayıdır. Mesela 6 sayısı.
6’nın asal çarpanları 1,2 ve 3’dür. 1+2+3=6 dolayısıyla 6 kusursuzzz olan sayılardan
biridir gibi. İstenmeyen durumlarında olabileceği ihtimali göz önünde bulundurularak
gerekli kontroller yaptırılacaktır.

using System;
using System.Collections.Generic;
using System.Text;

namespace KusursuzSayı
{
class MükemmelSayı
{
static void Main(string[] args)
{
Console.Write("ilk sayiyi giriniz"); // aralığın ilk değeri
int sayi1 = Convert.ToInt32(Console.ReadLine()); // girilen değeri sayi1 e atadık
Console.Write("ikinci sayiyi giriniz"); // aralığın ikinci değeri
int sayi2 = Convert.ToInt32(Console.ReadLine()); // girilen değeri sayi2 ye atadık

int varmi = 0; // aralıkta mükemmel sayı olup olmadığı kontrol edilcek
for (int i = sayi1; i < sayi2; i++) // girilen sayı aralığını dönmek için
{
int toplam = 0; // bölenlerin toplamı her seferinde ikinci döngümüzden önce sıfırlanmalı çünkü sayımız değişmekte
for (int j = 1; j < i; j++) // 1 den mevcut sayıya kadar bölenlerini çıkartmamız için
{

if (i % j == 0) // sayının 1 den itibaren bölenlerini aratıyoruz
toplam += j; // bölenlerini bulup toplamaya başlıyoruz her döngüde
}
if (toplam == i) // toplam kendisine eşitse mükemmeldir
{
Console.WriteLine("\n" + i); // mükemmel sayımızı yazdıralım
varmi = 1; // if sorgusunu geçtiğine göre mükemmel sayı var
}
}

if (varmi == 0) // varmı hala sıfır kaldığına göre bu bildirimde bulunmalıyız
Console.WriteLine("Verilen aralıkta mükemmel sayı yoktur."); // "Mükemmel Sayı Kontrolü";
Console.ReadLine(); // ekranda sonucu görebilmek için
}
}
}

Bu kadarcık kolay gelsin :)

barisla.com

1 yorum:

Adsız dedi ki...

girilen 10 tane rasgele sayının mükemmel sayı olup olmadığını nasıl bulabilirdik. Bu arada açıklamalarınız için saolun çok yararı oldu :)