Jak napisać program który wyznaczy sumę wszystkich dzielników liczby x.
Proszę o pomoc.
pozdrawiam
edit: nikt nie potrafi mi pomóc?
Jak napisać program który wyznaczy sumę wszystkich dzielników liczby x.
Proszę o pomoc.
pozdrawiam
edit: nikt nie potrafi mi pomóc?
Ostatnio edytowane przez MateO : 12-08-2007 - 22:46
sprobuj dzielić liczbę przez ja sama a potem po kolei przez o jeden
mniejsza az dojdziesz do jedynki, za każdym razem sprawdzajac taka zaleznosc czy liczba zaokraglona
do całości, (funkcja trunc) przez liczbę ze wcześniejszego dzielenia jest równa
jeden, jak tak to sie dzieli bez reszty.
"dobrzy hakerzy są sławni na cały świat, ale o hakerach geniuszach nikt nic nie wie."
żęby było szybciej to możesz dojść tylko do polowy tej liczby
sorki za chaotyczny opis ale mnie czas goni - wiec szybko przykład jak masz liczbę to największy dzielnik różny od tej samej liczby to może być połowa tej liczby...
np. masz liczbę 100 największy dzielnik to 100 ale oprócz 100 to największy jest 50 bo większy niż 50 nie może być bo już 51 przy pomnożeniu przez 2 daje nam większa liczbę niż 100 wiec odpada... dlatego dojedz do połowy a otrzymane wyniki zapisz a tablicy (otrzymane wyniki mam tu na myśli liczby dla których modulo jest liczba całkowita....)
następnie podziel liczbę wyjściową przez wyniki z tablicy i otrzymasz druga tablice - gdzie będzie reszta dzielników potem zsumować i po bólu
zastanawiam sie nad jeszcze jednym sposobem - jeszcze szybszym - ale zanim palne głupote wole przemyśleć sprawę ;p a narzazie nie ma to czasu :/
Agencja reklamy kielce (mały kilkudniowy case pozycjonerski )
program dzielnik;
uses crt;
var
j,n:longint;
ch:char;
begin
readln(n);
for j:=1 to n do
if n mod j=0 then writeln(j);
ch:=readkey;
end.
tak zrobiłam i mi wyskakują wszystkie dzielniki, jak mam zrobić by zsumować te dzielniki?Nie będę przecież robiła tego na kalkulatorze.
Dodalem to co pogrubione... suma dzielnikow jest w zmiennej s.Kod:program dzielnik; uses crt; var j,n,s:longint; ch:char; begin s:=0; readln(n); for j:=1 to n do if n mod j=0 then begin writeln(j); s := s + j; end; ch:=readkey; end.
P.S.
Dziwnie sie czuje... ostatnio w pascalu programowalem hmmm... jakies 10 lat temu
Ostatnio edytowane przez TQM : 12-09-2007 - 19:11
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)