Advertisement
ArfIsAToe

bacSC 2015

May 18th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.43 KB | None | 0 0
  1. program bac2015;
  2. uses wincrt;
  3. type
  4.     tab = array [1..100] of integer;
  5. var
  6.  t : tab;
  7.  n : integer;
  8.  
  9. procedure saisi(var n : integer);
  10.     begin
  11.         repeat
  12.             write('N = ');
  13.              readln(n);
  14.         until n in [3..10] ;
  15.     end;
  16.     Procedure fillt(var t : tab ; n :integer);
  17.         var
  18.             a : Integer;
  19.         begin
  20.             Randomize;
  21.             for a:=1 to n do
  22.                 repeat
  23.                     t[a]:=random(1000);
  24.                     {write('T[',a,'] = ');
  25.                      readln(t[a]);  }
  26.                 until (t[a]>= 10) and (t[a]<=999);
  27.         end ;
  28.         function prem(x: integer ): Boolean;
  29.             var
  30.                 a: integer;
  31.             begin
  32.            
  33.                 a:=2;
  34.                 while (x mod a <> 0 ) and (a <= x div 2 ) do
  35.                     a:=a+1;
  36.                 prem := a> x div 2 ;
  37.             end;
  38.             function riche(x: integer): boolean;
  39.                 var
  40.                     y,compt,d: integer;
  41.                 begin
  42.                     y:=x;
  43.                     compt:=1;
  44.                     d:=2;
  45.                     repeat
  46.                         if x mod d = 0 then
  47.                             begin
  48.                                 x := x div 2;
  49.                                 compt:=compt+1;
  50.                             end
  51.                         Else
  52.                             begin
  53.                                 compt:=1;
  54.                                 repeat
  55.                                     d:=d+1;
  56.                                 until prem(d);
  57.                             end;
  58.                     until ( d = y ) or (compt = 2);
  59.                     riche := compt = 2 ;
  60.                 end;
  61.                 procedure aff(t : tab ; n : Integer);
  62.                     var
  63.                         a : integer;
  64.                     begin
  65.                         write('Nombres Riches : ');
  66.                         for a:=1 to n do
  67.                             if riche(t[a]) then
  68.                                 write(t[a]:6);
  69.                         writeln;
  70.                         write('T : ');
  71.                             for a:=1 to n do
  72.                                 write(t[a]:6);
  73.                     end;
  74. begin
  75.     saisi(n);
  76.     fillt(t,n);
  77.     aff(t,n);
  78. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement