Salve a tutti,, ho appena creato questo programma: Factorize.
Esso, ricevuto un intero positivo.. lo scompone in fattori primi.
Questo è il sorgente:
Il programma così funziona.. però, dato com einput, ad esempio 8...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(); } } }
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)