RAZLOZEN.PAS 898 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. Var
  2. res : array [1..35] of longint;
  3. cursimple : longint;
  4. num : longint;
  5. cur : byte;
  6. Procedure FindNextSimple;
  7. Var
  8. exitF : boolean;
  9. i : longint;
  10. Begin
  11. repeat
  12. ExitF := false;
  13. if cursimple in [1..2] then inc(cursimple) else inc(cursimple,2);
  14. for i := 2 to round(sqrt(cursimple)) do if cursimple mod i = 0 then ExitF := true;
  15. until not ExitF;
  16. End;{FindNextSimple}
  17. {--------------------------------}
  18. Begin
  19. Write('‚¢¥¤¨â¥ ç¨á«®: ');
  20. ReadLn(num);
  21. cursimple := 1;
  22. cur := 1;
  23. While num <> 1 do
  24. begin
  25. FindNextSimple;
  26. while num mod cursimple = 0 do
  27. begin
  28. num := num div cursimple;
  29. res[cur] := cursimple;
  30. inc(cur);
  31. end;
  32. end;
  33. cur :=1;
  34. While res[cur] <> 0 do
  35. begin
  36. Write(res[cur],' ');
  37. inc(cur);
  38. end;
  39. ReadLn
  40. End.