Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program f1;
- uses math;
- var
- n,k,i,l,osztok,l2:longint;
- dprime,dprime2,palca,d,pow:array of integer;
- procedure add(n:integer);
- begin
- if (dprime[l]<>n) or (l=0) then
- begin
- l:=l+1;
- dprime[l]:=n;
- dprime2[l]:=1;
- end
- else
- begin
- dprime2[l]+=1;
- end;
- end;
- procedure oszto(k:integer);
- var i,t,j:longint;
- begin
- for i:=dprime2[k] downto 0 do
- begin
- pow[k]:=i;
- if k>1 then
- begin
- oszto(k-1)
- end
- else
- begin
- l2:=l2+1;
- t:=1;
- for j:=1 to l do
- t:=t*trunc(power(dprime[j],pow[j]));
- writeln('pow:');
- for j:=1 to l do writeln(pow[j]);
- d[l2]:=t;
- end;
- end;
- for j:=1 to k do
- pow[j]:=dprime2[j];
- end;
- begin
- l:=0;
- readln(n);
- setlength(palca,n);
- setlength(dprime,trunc(sqrt(n))+3);
- setlength(dprime2,trunc(sqrt(n))+3);
- {for i:=0 to n-1 do
- read(palca[i]);}
- while n mod 2 = 0 do
- begin
- add(2);
- n:=n div 2;
- end;
- for i:=1 to floor(sqrt(n)/2) do
- if n mod (i*2+1) = 0 then
- begin
- add(i*2+1);
- n:=n div (i*2+1);
- end;
- if n>=dprime[l] then add(n);
- osztok:=1;
- for i:=1 to l do
- osztok:=osztok*(dprime2[i]+1);
- setlength(d,osztok);
- setlength(pow,l);
- pow:=dprime2;
- for i:=1 to l do
- writeln(dprime[i],' ',dprime2[i]);
- writeln(osztok);
- oszto(l);
- for i:=1 to l2 do writeln(d[i]);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement