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.