Bài tập về câu lệnh For 1. Viết chương trình tính tích P=1x2x3x..xn (n là các số nguyên >=1 nhập từ bàn phím). 2. Viết chương trình tính lũy thừa của xn (x,n là các số nguyên dương nhập từ bàn phím). 3. Viết chương trình kiểm tra số nguyên n (n>=2) có phải là số hoàn hảo hay không? (số hoàn hảo là số bằng tổng các ước của nó trừ chính nó). 4. Viết chương trình kiểm tra số nguyên n (n>=2) có phải là số nguyên tố hay không? (số nguyên tố là số có 2 ước 1 và chính nó). 5. Viết chương trình in ra các số hoàn hảo từ 2 đến n (n là số nguyên >=2). 6. Viết chương trình in ra các số nguyên tố từ 2 đến n (n là số nguyên >=2). giúp mình với nhé

2 câu trả lời

1.

var n:longint;
//
function gt(n:longint):int64;
var h:longint;
begin
gt:=1;
for h:=2 to n do gt:=gt*h;
end;
//
begin
read(n);
write(gt(n));
end.

2.

var n,x:longint;
//
function power(a:longint):int64;
var tmp:longint;
begin
if a=1 then exit(x);
tmp:=power(a div 2);
if a mod 2=0 then exit(tmp*tmp) else exit(tmp*tmp*x);
end;
//
begin
read(x,n);
write(power(n));
end.

3.

var n:longint;
begin
read(n);
if (n=6) or (n=28) or (n=496) and (n=8128) then write('Co la so hoan hao')

 else write('Khong la so hoan hao');
end.

4.

var n:longint;
//
function snt(x:longint):boolean;
var h:longint;
begin
if x<2 then exit(false);
for h:=2 to trunc(sqrt(x)) do
 if x mod h=0 then exit(false);
exit(true);
end;
//
begin
read(n);
if snt(n)=true then write('Co la so nguyen to')
 else write('Khong la so nguyen to');
end.

5.

var n:longint;
begin
read(n);
if 6<=n then write(6,' ') else begin
                               write('Khong co so nao');
                               exit;
                               end;
if 28<=n then write(28,' ') else exit;
if 496<=n then write(496,' ') else exit;
if 8128<=n then write(8128,' ') else exit;
end.

6.

var n:longint;
//
procedure sang_ngto;
var i,j,h:longint;
    kt:array[1..10000000] of boolean;
begin
fillchar(kt,sizeof(kt),true);
for j:=2 to trunc(sqrt(n)) do
 begin
 if kt[j]=false then continue;
 i:=j*j;
 while i<=n do
  begin
  kt[i]:=false;
  i:=i+j;
  end;
 end;
for h:=2 to n do
 if kt[h]=true then write(h,' ');
end;

begin
read(n);
sang_ngto;
end.

1.

var n:longint;
//
function gt(n:longint):int64;
var h:longint;
begin
gt:=1;
for h:=2 to n do gt:=gt*h;
end;
//
begin
read(n);
write(gt(n));
end.

2.

var n,x:longint;
//
function power(a:longint):int64;
var tmp:longint;
begin
if a=1 then exit(x);
tmp:=power(a div 2);
if a mod 2=0 then exit(tmp*tmp) else exit(tmp*tmp*x);
end;
//
begin
read(x,n);
write(power(n));
end.

3.

var n:longint;
begin
read(n);
if (n=6) or (n=28) or (n=496) and (n=8128) then write('Co la so hoan hao')

 else write('Khong la so hoan hao');
end.

4.

var n:longint;
//
function snt(x:longint):boolean;
var h:longint;
begin
if x<2 then exit(false);
for h:=2 to trunc(sqrt(x)) do
 if x mod h=0 then exit(false);
exit(true);
end;
//
begin
read(n);
if snt(n)=true then write('Co la so nguyen to')
 else write('Khong la so nguyen to');
end.

5.

var n:longint;
begin
read(n);
if 6<=n then write(6,' ') else begin
                               write('Khong co so nao');
                               exit;
                               end;
if 28<=n then write(28,' ') else exit;
if 496<=n then write(496,' ') else exit;
if 8128<=n then write(8128,' ') else exit;
end.

6.

var n:longint;
//
procedure sang_ngto;
var i,j,h:longint;
    kt:array[1..10000000] of boolean;
begin
fillchar(kt,sizeof(kt),true);
for j:=2 to trunc(sqrt(n)) do
 begin
 if kt[j]=false then continue;
 i:=j*j;
 while i<=n do
  begin
  kt[i]:=false;
  i:=i+j;
  end;
 end;
for h:=2 to n do
 if kt[h]=true then write(h,' ');
end;
//
begin
read(n);
sang_ngto;
end.

Câu hỏi trong lớp Xem thêm
3 lượt xem
0 đáp án
51 phút trước