Pascal: SOLUTIONS BÀI TẬP 7


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Bài tập 7.1:

Mã chương trình:

Program Nguyen_to;

Var n,i:integer;

Function NT(n:integer):Boolean;

Var ok: Boolean;

     i: integer;

Begin

    ok:=true;

    for i:=2 to n-1 do

     if (n mod i)= 0 then ok:=ok and false;

     if n < 2 then NT:=false else NT:=ok;

End;

Begin

   Write('Nhap n: ');Readln(n);

   i:=n;

   Repeat i:=i+1;

   Until NT(i);

   Write('So nguyen to nho nhat lon hon ',n, 'la: ',i);

   Readln

End.

Bài tập 7.2:

Mã chương trình:

Program Phan_tich;

var n,i: integer;

Begin

    Write('Nhap so can phan tich: ');Readln(n);

    i:=2;

    Write('Ket qua phan tich:');

    Write(n,'=');

    While n>1 do

    Begin

    if n mod i = 0 then Begin Write(i,'.'); n:= n div i End

    else i:=i+1;

    End;

    Readln

End.

Nhận xét:

Cài đặt trên in dư một dấu nhân ở cuối. Hãy chỉnh sửa để bỏ dấu nhân thừa này.

Bài tập 7.3:

Mã chương trình:

Program Phan_tich_nguyen_to_2;

Var n, Max, so, i:byte;

Function PTNT(n:integer):byte;

Var i,p:byte;

Begin

    i:=2;

    p:=0;

    While n>1 do if (n mod i)=0 then Begin p:=p+1; n:=n div i end else i:=i+1;

    PTNT:=p;

End;

Procedure PT(n:integer);

Var i:byte;

Begin

    i:=2;

    While n>1 do

    if (n mod i)=0 then

     Begin Write(i,'.'); n:=n div i end else i:=i+1;

End;

 

Begin

    Write('Nhap so n: ');Readln(n);

    Max:=0;

    For i:= 1 to n do if PTNT(i)>=Max then Begin Max:=PTNT(i); So:=i End;

    Write('So ',So,' co nhieu uoc nhat,',so,' = ');

    PT(So);

    Readln

End.

Bài tập 7.4:

Mã chương trình:

Program Phan_tich;

Var M: array[1..1000] of byte;

    i: byte;

    n: integer;

Begin

    For i:=1 to 1000 do M[i]:=0;

    Write('Nhap so n: ');Readln(n);

    i:=2;

    While n>1 do if (n mod i = 0) then begin M[i]:=M[i]+1; n:=n div i End

    else i:=i+1;

    For i:=1 to 1000 do if M[i]>0 then Begin If M[i]>1 then Write(i,'^',M[i],'.') else Write(i,'.') End;

    Readln;

End.

Bài tập 7.5:

Mã chương trình:

Program Tong_nguyen_to;

Var i,n:integer;

Function NT(n:integer):Boolean;

Var ok: Boolean;

     i:integer;

Begin

    ok:=true;

    For i:=2 to n-1 do if (n mod i) = 0 then ok:=ok and false;

    if n>=2 then NT:=ok else NT:=false;

End;

Begin

    Write('Nhap so n: ');Readln(n);

    For i:=2 to n div 2 do if (NT(i) and NT(n-i)) then Writeln(n,' = ',i,' + ',n-i);

    Readln

End.

Nhận xét:

Hãy mở rộng bài toán theo hướng:

- Xét xem trong đoạn [n1...n2] số nào cho phép tách thành tổng hai số nguyên tố nhiều trường hợp nhất.

- Tách một số thành tổng ba số nguyên tố.

Bài tập 7.6:

Mã chương trình:

Program Cap_so_huu_nghi;

Var a,b,n,i:integer;

Function TU(a:integer):integer;

Var Tg,i:integer;

Begin

    Tg:=0;

    For i:=1 to a-1 do if (a mod i = 0) then Tg:=Tg + i;

    TU:=Tg;

End;

Begin

     Write('Nhap so n: ');Readln(n);

     For a:=1 to n do Begin b:=TU(a); if TU(b)=a then Writeln(a,'-',b)  end;

     Readln;

End.

Nhận xét:

Các số hoàn chỉnh luôn là hữu nghị của chính nó.

Bài 7.7:

Mã chương trình:

program KTSNT;

var j,n:integer;

function ktnt(k:integer):boolean;
var j:integer;
begin
  ktnt:=false;
  if k<2 then exit;
  for j:=2 to trunc(sqrt(k)) do
    if k mod j=0 then exit;
  ktnt:=true;
end;

BEGIN
  write('Nhap n =  ');readln(n);

  if ktnt(n)=true then write(n,' la so ngto')
  else write(n,' khong la so ngto');
  readln
END.

Bài 7.8:

Mã chương trình:

program Xuat_snt;

uses crt;

var i,n,dem:integer;

function ktnt(k:integer):boolean;

var j:integer;

begin

  ktnt:=false;

  if k<2 then exit;

  for j:=2 to trunc(sqrt(k)) do

    if k mod j=0 then exit;

  ktnt:=true;

end;

begin

clrscr;

  write('nhap vao so n= ');readln(n);

  for i:=2 to n do

    if ktnt(i) then

      begin

        write(' ',i);

        dem:=dem+1;

      end;

  writeln;

  writeln('Co tat ca ',dem,' so nguyen to');

readln;

end.

Bài 7.9:

Mã chương trình:

program sontcungnhau;

uses crt;

var a,b,x,y:integer;

{Ham kiem tra uoc chung lon nhat}

function ucln(var m,n:integer):integer;

  var du:integer;

begin

  while n<>0 do

    begin

      du:=m mod n;

      m:=n;

      n:=du;

    end;

  ucln:=m;

end;

{Ham kiem tra so nguyen to}

function snt(var m:integer):boolean;

  var i:integer;

  begin

    snt:=false;

    for i:=2 to trunc(sqrt(m)) do

      if m mod i = 0 then exit;

    snt:=true;

  end;

{Chuong trinh chinh}

begin

clrscr;

  write('Nhap vao so thu nhat: ');readln(a);

  write('Nhap vao so thu hai: ');readln(b);

  x:=a;

  y:=b;

  if snt(a) and snt(b) then

    begin

      if (ucln(a,b)=1) then

        writeln('Ket qua: ',x,' va ',y,' la hai so nguyen to cung nhau')

      else

        writeln('Ket qua: ',x,' va ',y,' khong la hai so nguyen to cung nhau');

    end

  else

    writeln('Khong phai cung la hai so nguyen to can kiem tra');

readln;

end.

Bài 7.10:

Mã chương trình:

program so_ngto;

uses crt;

var i,j,n:longint;

Function ngto(m:longint):boolean;

var t:longint;

Begin

 if m<2 then ngto:=false

 else

  Begin

    ngto:=true;

    for t:=2 to trunc(sqrt(m)) do

      if m mod t=0 then

        Begin

          ngto:=false;

          break;

        end;

  end;

end;

Begin

 clrscr;

 write('Nhap  vao mot so van kiem tra (n>=1): ');readln(n);

 if  (ngto(n)=false) or (n<4) then

    writeln(' So ',n,' ko la so ngto')

 else

  begin

    i:=n-2;

    while (i>0) do

      if ngto(i) then

        break

      else i:=i-2;

    j:=n+2;

    while (j>n) do

      if ngto(j) then

        break

      else j:=j+2;

    if n > ((i+j)/2)  then

      writeln('So ',n,' la so ngto manh')

    else

      writeln('So ',n,' ko phai la so ngto manh');

  end;

readln;

End.

Bài 7.11:

Mã chương trình:

PROGRAM Phan_Tich_SNT;{Dang 100=2*2*5*5}

Uses crt;

VAR i,n :INTEGER;

BEGIN

clrscr;

    Write ('Nhap n:');Readln(n);

    Write (n,'=');

    i:=2;

    REPEAT

        WHILE n MOD i <> 0 DO

            i:=i+1;

        Write(i);

        n:=n DIV i;

        IF n > 1 THEN

            write ('*');

    UNTIL n = 1;

    readln;

END.

Bài 7.12:

Mã chương trình:

PROGRAM Phan_Tich_SNT;

Uses crt;

VAR i,n :INTEGER;

BEGIN

clrscr;

    Write ('Nhap n:');Readln(n);

    i:=2;

    REPEAT

        WHILE n MOD i <> 0 DO i:=i+1;

        Writeln(n:5,' | ',i:2);

        n:=n DIV i;

    UNTIL n = 1;

    writeln(1:5,' |');

writeln('Da xu ly xong !');

readln;

END.

Bài 7.13: Dãy Fibonacci và số nguyên tố

Mã chương trình:

uses crt;
var j,i,m,a,b,t:longint;
{----------------------}
Function kt(n:longint):boolean;
 var i,d:integer;
  begin
  kt:=false;
  d:=0;
   For i:=1 to n do
    if n mod i=0 then inc(d);
  if d=2 then kt:=true;
 end;
{----------------------}
begin
 clrscr;
 Write('Nhap m= ');readln(m);
 a:=0;
 b:=1;
  Repeat
      a:=a+b;
      b:=a+b;
  Until (a>=m) and (b>=m);
  if a<b then begin t:=a;a:=b;b:=t;end;
  Repeat
     a:=a-b;
     b:=b-a;
  Until ( (kt(a)) and (a<m))  or ( (kt(b)) and (b<m) );
If a>b then writeln(a);
if b>a then writeln(b);
readln
end. 
» Tiếp: BÀI TẬP 8: Chuyên đề chữ số, hệ cơ số
« Trước: BÀI TẬP 7: Chuyên đề chia hết, số nguyên tố, Fibonacci
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!