Viết chương trình nhập mảng số nguyên gồm n phần tử. Hãy tìm các số M sao cho mỗi phần tử khi chia cho M nhận được cùng số dư Vd: Input 2 14 17 Output 1 3 Giải thích: 14/1 và 17/1 có số dư là 0; 14/3 có số dư là 2, 17/3 có số dư là 2.

2 câu trả lời

uses crt;
var f:text; i,j,m,kt:longint; n:array[1..1000000]of longint;
begin
clrscr;
   assign(f,'input.pas');reset(f);
      readln(f,m);
      for i:=1 to m do readln(f,n[i]);
   close(f);
   assign(f,'output.pas');rewrite(f);
      for i:=1 to n[1] do
         begin
            kt:=0;
            for j:=1 to m do if n[j] mod i<>n[1] mod i then kt:=1;
            if kt=0 then write(f,i,' ');
         end;
   close(f);
end.

program cungsodu;

uses crt;

var A:array[1..100] of integer;

     n,i,j,min,m:integer;

     kt:boolean;

begin

     clrscr;

     write('Nhap so luong phan tu n: ');     readln(n);

     for i:=1 to n do

          begin

               write('Phan tu thu ',i,': ');     readln(A[i]);

          end;

     min:=A[1];

     for i:=2 to n do

          if A[i]<min then min:=A[i];

     for i:=1 to min do

          begin

               m:=A[1] mod i;   kt:=true;

               for j:=2 to n do

                    if A[j] mod i<>m then kt:=false;

               if kt=true then write(i,' ');

          end;

     readln;

end.

Câu hỏi trong lớp Xem thêm