Problema 3 Scomposizione in fattori primi

Università degli Studi di Udine
Facoltà di Scienze MM. FF. NN.
33100 - UDINE (UD)
Via delle Scienze, 208
Tel. +39 (432) 558681/558684
Gara di Programmazione per gli studenti delle scuole superiori
20 Marzo 2002
Problema 3 – Scomposizione in fattori primi
Si vuole realizzare un programma per scomporre un numero intero positivo n nei suoi fattori primi.
Tale scomposizione è data dalla sequenza dei numeri primi che dividono n, considerati in ordine
crescente, ciascuno accompagnato dal corrispondente esponente. Se n è divisibile per pe, dove p è un
numero primo, ma non per pe+1, allora p è associato all’esponente e nella scomposizione (p non fa
parte della scomposizione se e = 0).
L’input del programma è una sequenza di righe, in ciascuna delle quali è riportato un numero intero
positivo. L’ultima riga è identificata convenzionalmente dal numero “0”, che non fa parte dei numeri
da fattorizzare. Non compaiono altri caratteri, nemmeno spazi bianchi, prima o dopo i numeri.
L’output del programma deve essere una sequenza di righe, una per ciascun numero da fattorizzare.
Una riga di output contiene la sequenza dei divisori primi, elencati in ordine crescente, alternata dai
corrispondenti esponenti. Fra un fattore primo e il corrispondente esponente è interposto il carattere
"^" (cappelletto), senza altri spazi; fra un esponente e il fattore primo successivo c’è un singolo spazio
bianco. Non possono comparire altri caratteri, nemmeno spazi bianchi, all’inizio o alla fine.
Esempio
input:
output corrispondente:
168
2^3 3^1 7^1
16
2^4
300
2^2 3^1 5^2
21
3^1 7^1
1573
11^3 13^1
0