PDA

Visualizza la versione completa : Numeri perfetti?! [PASCAL]


Porippoppero
27-04-2004, 14:47
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


:dh: :dh:

HELP!

maiosyet
27-04-2004, 15:36
Non conosco il pascal, ma in C (che penso sia molto simile) potresti fare una cosa del tipo, grezzamente parlando:


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

Perlomeno, questo quel che mi venuto in mente di prima battuta, traducilo in pascal ;)
(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

:ciauz:

LeleFT
27-04-2004, 15:46
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.

Ciao. :ciauz:

Loading