• 02-01-2016, 21:49:00
    #1
    Merhaba,

    Kullanıcıdan alınan sayıyı asal sayılara parçalamam gerekiyor.
    Kullanıcı 5 girerse 3+2= 5 mantığından 2 3 şeklinde
    Kullanıcı 9 girerse 2+2+2+3 mantığından 2 2 2 3 şeklinde
    ekran çıktısı vermesi lazım.

    Neye göre deneyerek gitmek gerek ?
  • 02-01-2016, 21:58:30
    #2
    Hocam matematikte nasıl yapıyorsak öyle yapacaksınız diyeceğim ama yapmak istediğiniz şey tam olarak asal çarpanlarına ayırma değil sanırım.

    Onun dışında ;
    9'u 2+ 2+ 5 şeklinde istemiyorsunuz mesela.
    Tüm sayıları : çiftse; 2+2+2+2+... şeklinde, tekse 2+2+....+3 şeklinde yazarız sizin yazdığınıza göre.

    Tam anlayamadım yani.
  • 02-01-2016, 23:56:10
    #3
    Ipod adlı üyeden alıntı: mesajı görüntüle
    Hocam matematikte nasıl yapıyorsak öyle yapacaksınız diyeceğim ama yapmak istediğiniz şey tam olarak asal çarpanlarına ayırma değil sanırım.

    Onun dışında ;
    9'u 2+ 2+ 5 şeklinde istemiyorsunuz mesela.
    Tüm sayıları : çiftse; 2+2+2+2+... şeklinde, tekse 2+2+....+3 şeklinde yazarız sizin yazdığınıza göre.

    Tam anlayamadım yani.
    minden maxa giden bir asal sayı bölenler lazım hocam

    çiftte 2 tekte 3 olmamasının sebebi
    35 sayısında 2 3 7 23 olması yani kendisinden büyük herhangi bir asal sayı sağlıyorsa olur 9 da gözden kaçırmışım 9 u 2 2 5 10 u da 2 3 5 şeklinde dizmek istiyorum
  • 03-01-2016, 01:47:36
    #4
    KEO
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Girdi aralığı nedir?
  • 03-01-2016, 02:03:40
    #6
    KEO adlı üyeden alıntı: mesajı görüntüle
    Girdi aralığı nedir?
    1 ve 10 milyon arası hocam.
  • 04-01-2016, 10:45:27
    #7
    çok güzel soru. çok beğendim. kullanacağın yapı rekürsif olmalı. algoritman ise en kısa yol algoritması.
    bir tane asal sayı graphın olmalı. sayı ağacın en başından başlayarak, sayı-kök şeklinde tekrardan en baştan(rekürsif) başlayarak, sayı ==0 oluncaya kadar devam etmeli.
    edit: yok vazgeçtim. işi uzatmadan.
    gene rekürsif bir yapı kuracağız.
    sayıdan asal sayı dizisinin çıkabilen en küçük elemanını çıkartıp, rekürsif yapıyı kuracağız. bunu bir stacke yazacağız. eğer sayı çıkarma işleminden sonra negatif olursa, son işlemi geri alıp başka bir elemanı çıkaracağız.
    9
    9-2=7 -> pop (2)
    7-2 =5 -> pop (2)
    5-2 =3 -> pop(2)
    3-2 = 1 -> pop(2)
    1-2 =-1 geri git. -> push(2)
    3-3 =0 tamam. pop(3)
    buradan sonra stack i ekrana yazdıracaksın.
  • 13-01-2016, 14:07:43
    #8
    static void Main(string[] args)
    {
    int Sayi = Convert.ToInt32(Console.ReadLine()), Sayac = 0;

    for (int i = 1; i <= Sayi; i++)
    {
    if (Sayi % i == 0)
    {
    Sayac++;
    }
    }

    if (Sayac == 2)
    {
    //Sayı asaldır.
    //O halde direkt olarak sayının kendisini yazdırabiliriz.
    Console.Write(Sayi);
    }
    else
    {
    //Demek ki sayı asal değildir.
    //Asal çarpanlarına ayıralım.
    string AsalCarpanlar = "";

    for (int i = 1; i <= Sayi; i++)
    {
    if (i != 1 && Sayi % i == 0)
    {
    Sayi = Sayi / i;
    AsalCarpanlar += i + " x ";
    i = 1;
    }
    }
    Console.Write(AsalCarpanlar);
    }

    Console.Read();
    }

    Buyursunlar...
  • 15-01-2016, 03:54:06
    #9
    gncy adlı üyeden alıntı: mesajı görüntüle
    static void Main(string[] args)
    {
    int Sayi = Convert.ToInt32(Console.ReadLine()), Sayac = 0;

    for (int i = 1; i <= Sayi; i++)
    {
    if (Sayi % i == 0)
    {
    Sayac++;
    }
    }

    if (Sayac == 2)
    {
    //Sayı asaldır.
    //O halde direkt olarak sayının kendisini yazdırabiliriz.
    Console.Write(Sayi);
    }
    else
    {
    //Demek ki sayı asal değildir.
    //Asal çarpanlarına ayıralım.
    string AsalCarpanlar = "";

    for (int i = 1; i <= Sayi; i++)
    {
    if (i != 1 && Sayi % i == 0)
    {
    Sayi = Sayi / i;
    AsalCarpanlar += i + " x ";
    i = 1;
    }
    }
    Console.Write(AsalCarpanlar);
    }

    Console.Read();
    }

    Buyursunlar...

    olayı yanlış anlamışsınız hocam
    ilk olarak sayı asal ise direk yazmıyoruz örneğin 5 i = 2 + 3 şeklinde yazıyoruz.
    ikinci olarak asal çarpan değil toplam arıyorum