Nhập vào 2 số nguyên m,n kiểm tra xem chúng có phải là số nguyên tố tương đương không?
Hai số gọi là nguyên tố tương đương nếu chúng có cùng các ước số nguyên tố. Ví dụ 15 và 75 là các số nguyên tố tương đương. Bởi vì 15=3*5 trong khi 75=3*5^2, có cùng ước số nguyên tố là 3 và 5. Tương tự 12=2^2*3 và 18=2*3^2 là hai số nguyên tố tương dương vì có cùng hai ước số nguyên tố là 2 và 3. Tuy nhiên 12 và 60 ko nguyên tố tương đương vì 12=2^2*3 và 60=2^2*3*5, 60 có ước số nguyên tố 5 trong khi 12 không có.
Program NgTo_TD;
Uses Crt;
Type Mang=Array[1..100] Of Integer;
Var M,N:Integer;
{Ham kiem tra so co phai la NT hay ko}
Function SNT(n:integer):boolean;
Var i:integer;
Begin
If (n=0)Or(n=1) then NT:=False
Else
Begin
i:=2;
While (n mod i <> 0)and(i<Sqrt(n)) do i:=i+1;
If i>Sqrt(n) then NT:=True Else Nt:=False;
End;{if}
End;
{Function NT}
Function Nttd(N,M:Integer):Boolean;
Var J,K,I,D,Dem,S:Integer;
A,B:Mang;
Begin
D:=0;
For J:=1 To N Do If (SNT(J)) And (N Mod J=0) Then
Begin D:=D+1; A[D]:=J End;
Dem:=0;
For K:=1 To M Do If (SNT(K)) And (M Mod K=0) Then
Begin Dem:=Dem+1; B[Dem]:=K End;
S:=0;
If D=Dem Then For I:=1 To D Do If A[I]=B[I] Then Inc(S);
If S=D Then Nttd:=True Else Nttd:=False;
End;
Begin
Clrscr;
Write('Nhap M:');Readln(M);
Write('Nhap N:');Readln(N);
If (Nttd(M,N)) Then Writeln(M,' Va ',N,' La Hai So Nguyen To Tuong Duong')
Else Writeln(M,' Va ',N,' Khong Phai La Hai So NT Tuong Duong');
Readln
End.


program nguyen_to_tuong_ung; uses crt; var a : array[1..100] of integer; b : array[1..100] of integer; so1, so2,i : integer; kt : boolean; function ktsonguyento( a: integer) :boolean; var i : integer; begin if a=1 then begin ktsonguyento:=false; end else if a=2 then ktsonguyento:= true else for i:= 2 to a-1 do if a mod i=0 then begin ktsonguyento := false; break; end else ktsonguyento :=true; end; procedure kiemtra( c,d : integer); var i,t,x: integer; begin t:=0; for i:=1 to c do if c mod i=0 then if ktsonguyento(i)= true then begin t:= t+1; a[t]:=i; end; x:=0; for i:=1 to d… Read more »
Cảm ơn bạn đã chia sẻ 🙂
bài này thì ko dùng hàm mà cũng chạy dc nè uses crt; var M,N,t:longint; i,k:integer; A,B:array[1..100] of integer; ok:boolean; function ngto(n:integer):boolean; var i:integer; begin ngto:=true; If n<2 then ngto:=false else for i:=2 to trunc(sqrt(n)) do if n mod i= 0 then ngto:=false; end; begin clrscr; Write('M= ');readln(M); Write('N= ');readln(N); t:=M; i:=2; k:=1; while t mod i= 0 do begin if t mod i=0 then A[k]:=i; repeat t:=t div i; until t mod i0; k:=k+1 end; t:=N; i:=2; k:=1; while t mod i= 0 do begin if t mod i=0 then B[k]:=i; repeat t:=t div i; until t mod i0;… Read more »