Salve a tutti,, ho appena creato questo programma: Factorize.
Esso, ricevuto un intero positivo.. lo scompone in fattori primi.
Questo è il sorgente:

codice:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int n;
            int div = 2;
            string divw;
            int risc = 1;
            string tmp;
            System.Console.WriteLine("Fattorizzatore v0.8");
            System.Console.WriteLine("Inserisci il numero da scomporre");
            tmp = System.Console.ReadLine();
            n = System.Convert.ToInt32(tmp);
            string risw = ("i fattori di "+ tmp + " sono -->");
            int ris = n;
            //inizia il processo di fattorizzazione
            while (n / risc != 1)
            {
                if (ris % div == 0)
                {
                    divw = System.Convert.ToString(div);
                    ris = ris / div;
                    risc = risc * div;
                    risw = (risw + " " + divw);
                }
                else
                {
                    div++;
                }
            }
            System.Console.WriteLine(""+risw+"");
            System.Console.WriteLine("Matteppi ha offerto gentilmente questo software");
            System.Console.WriteLine("Grazie a 'Gibbo' per la fase di Debug");
            System.Console.ReadLine();
        }
        

    }
}
Il programma così funziona.. però, dato com einput, ad esempio 8...
da come risultato 8 --> 2 2 2
Come posso fare per radunare questi 2 2 2 in un 2^3..?
Ovviamente deve vale anche per tutti gli altri fattori
ad esempio
avendo un 2 2 3 3 3 3 5 7 7, dovrà risultare 2^2 3^4 5 7^2
Un altra cosa, c'è un comando che dice, un avolta finito, riavvia il processo se richiesto(ad esempio con la pressione di uno specifico tasto)