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 »