/* Stampa tutti i numeri perfetti minori di un naturale inserito da tastiera */ import java.util.Scanner; public class TrovaPerfetti { public static void main(String[] args) { int maxVal, n; Scanner lettore = new Scanner(System.in); System.out.print("Digita un naturale: "); maxVal = lettore.nextInt(); n = 1; while(n < maxVal) { int divisore; int sommaDivisori; divisore = 1; sommaDivisori = 0; while(divisore <= n/2) // non possono esistere divisori maggiori di n/2 { if(n%divisore == 0) sommaDivisori = sommaDivisori + divisore; divisore = divisore + 1; } if(sommaDivisori == n) System.out.println(n+" e' perfetto"); n = n + 1; } } }