Dato un numero da tastiera a dire se è perfetto, ovvero che sommati i suoi divisori eccetto a diano a stesso.
esempio: a=6
divisori di 6 eccetto 6 = 1,2,3
1+2+3=6
![]()
![]()
HELP!
Dato un numero da tastiera a dire se è perfetto, ovvero che sommati i suoi divisori eccetto a diano a stesso.
esempio: a=6
divisori di 6 eccetto 6 = 1,2,3
1+2+3=6
![]()
![]()
HELP!
Non conosco il pascal, ma in C (che penso sia molto simile) potresti fare una cosa del tipo, grezzamente parlando:
Perlomeno, questo è quel che mi è venuto in mente di prima battuta, traducilo in pascalcodice:Prendere in input il numero da tastiera far scorrere un ciclo for da 1 a (n-1), che ogni volta tenti di divirere 'a' per il numero che scorre nel ciclo se a : numero ciclo è un numero intero memorizza 'a' Se 'insieme numeri a' (puoi usare un array magari) = 'a' stampa blabla altrimenti blabla
(non è molto elegante, ma per noi agli inizi dovrebbe andare bene :quipy: )
Poi quando ho un attimo provo a farlo in C :sexpulp:
Spero di esserti stato utile
![]()
Ciao.codice:Program NumeriPerfetti; Var a: Integer; sum: Integer; tmp: Integer; Begin Writeln('Introdurre numero: '); Readln(a); tmp := 1; sum := 0; while (tmp < a) do begin if ((a mod tmp) = 0) then begin sum := sum + tmp; end; tmp := tmp + 1; end; if (sum = a) then Writeln('Il numero ',a,' è perfetto!') else Writeln('Il numero ',a,' non è perfetto!'); End.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza