Ayt 2019 Matematik 14 Nolu Sorunun c# ile çözümü

Kodla Büyü

akbilonline

Seçkin Üye
Seçkin Üye
Mesajlar
328
Aşağıda verilen sorunun çözümünü c# ile yapabilirmisiniz. Çocuklara anlatacağım.
 
Moderatör tarafında düzenlendi:
Çözümü bu şekilde yaptım hocam.

int sayi=64;
int logson=0;
int sonuc = 0;

Console.WriteLine("Sayılar:");
for (int x = 2; x <= sayi; x++)
{
if (sayi%x==0) //sorunun 1.kısmı kontrol ediliyor
{

for (int i = 1; i < sayi; i++)
{

if (Math.Pow(x, i) == sayi) //sorunun 2. kısmı kontrol ediliyor
{

logson = x;
}

}

if (logson != x) //1.kısımdan 2.kısım ayrıştırılıyor.
{
Console.WriteLine(x);
sonuc += x;
}


}
}
Console.WriteLine("Toplam:"+sonuc);

Console.ReadKey();
 

Ekli dosyalar

  • aytcevap.JPG
    aytcevap.JPG
    59.3 KB · Görüntüleme: 73
Çözülür hocam, ister tek diziye 1. şartı sağlayan sayıları atarsınız sonra ordan verileri okuyup 2. şartı kontrol ettiririsiniz. Yada ayrı ayrı 2 diziye sayıları atıp dizi içeriklerini karşılaştırırsınız.
 
// Dinamik dizi ile çözüm
int sayi = 64;
int sonuc = 0;
int esitivar=0;

ArrayList dizi1 = new ArrayList();
ArrayList dizi2 = new ArrayList();
ArrayList sonucdizisi = new ArrayList();


Console.WriteLine("Sayılar:");
for (int x = 2; x <= sayi; x++)
{
if (sayi % x == 0) //sorunun 1.kısmı kontrol ediliyor
{
dizi1.Add(x);
for (int i = 1; i < sayi; i++)
{
if (Math.Pow(x, i) == sayi) //sorunun 2. kısmı kontrol ediliyor
{
dizi2.Add(x);
}
}
}
}

for (int i = 0; i < dizi1.Count; i++)
{
esitivar = 0;
for (int j = 0; j < dizi2.Count; j++)
{
if (dizi1.ToString() == dizi2[j].ToString())
{
esitivar = 1;
}
}
if (esitivar == 0)
{
sonucdizisi.Add(dizi1);
}

}
foreach (int deger in sonucdizisi)
{
sonuc += deger;
Console.WriteLine(deger);
}
Console.WriteLine("----------");
Console.WriteLine(sonuc);



Console.ReadKey();
 
Geri
Üst