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)