Сформировать массив простых множителей заданного числа

Обработка числовых массивов

code: #pascal
  1. Var A:Array[1..100] of Integer;
  2.     F:Boolean;
  3.     C,N:Integer;
  4.  
  5. Function Prostoe(N:Integer):Boolean;
  6. Var I:Integer;
  7.     B:Boolean;
  8. Begin
  9.   B:=True;
  10.   For I:=2 to N-1 do
  11.    If N mod I = 0 Then B:=False;
  12.    Prostoe:=B;
  13. End;
  14.  
  15. Procedure Find(N:Integer);
  16. Var I:Integer;
  17. Begin
  18.   For I:=2 To N do
  19.   If (N mod I = 0) and Prostoe(I) Then
  20.    Begin
  21.     Inc(C);
  22.     A[C]:=I;
  23.     If N div I = 1 Then
  24.       F:=True;
  25.       Find(N div I);
  26.     If F Then Exit;
  27.    End;
  28. End;
  29.  
  30. begin
  31.  C:=0;
  32.  ReadLn(N);
  33.  Find(N);
  34.  N:=0;
  35.  Repeat                    
  36.  Inc(N);                  
  37.  WriteLn(A[N]:4);      
  38.  Until A[N+1] = 0;    
  39.  ReadLn;
  40. end.
Поделиться:

Похожие статьи: