Nhập số a từ bàn phím. Thực hiện các yêu cầu sau: - Kiểm tra xem a có đối xứng không - In ra các số nguyên tố từ 1 đến a - In ra các số hoàn hảo từ 1 đến a - In ra các số chính phương từ 1 đến a - In ra các số đối xứng từ 1 đến a --- Yêu cầu nhỏ: - Dùng file - Bạn canhtoanle hong làm nhé :(

2 câu trả lời

const fi='gicungduoc.inp';
      fo='gicungduoc.out';
var a,i:longint;
function checkprime(x:longint):boolean;
var i:longint;
begin
        if x<2 then exit(false);
        for i:=2 to trunc(sqrt(x)) do if x mod i = 0 then exit(false);
        exit(true);
end;
function hoanhao(n:longint):boolean;
var x,dem,c:longint;
begin
        dem:=0;
        for x:=1 to n-1 do
                if n mod x=0 then
                        dem:=dem+x;
        if dem=n then exit(true);
        exit(false);
end;
function doixung(x:longint):boolean;
var c:longint;
    s:ansistring;
begin
        str(x,s);
        for c:=1 to length(s) div 2 do
                        if s[1+c-1]<>s[length(s)-c+1] then exit(false);
                exit(true);
end;
function chinhphuong(x:longint):boolean;
begin
        if sqrt(x) = trunc(sqrt(x)) then exit(true);
        exit(false);
end;
begin
        assign(input,fi);
        reset(input);
        read(a);
        close(input);
        assign(output,fo);
        rewrite(output);
        if doixung(a) then writeln('Doi xung') else writeln('Khong doi xung');
        write('Cac so nguyen to tu 1 den a la: ');
        for i:=1 to a do
                if checkprime(i) then write(i,' ');
        writeln;
        write('Cac so hoan hao tu 1 den a la: ');
        for i:=1 to a do
                if hoanhao(i) then write(i,' ');
        writeln;
        write('Cac so chinh phuong tu 1 den a la: ');
        for i:=1 to a do
                if chinhphuong(i) then write(i,' ');
        writeln;
        write('Cac so doi xung tu 1 den a la: ');
        for i:=1 to a do
                if doixung(i) then write(i,' ');
        close(output);
end.


uses crt;
var d:text; i,a:longint;
function nt(a:longint):boolean;
var i:longint;
begin
   i:=2;
   while(a>2)and(a mod i<>0)do inc(i);
   nt:=i=a;
end;
function ht(a:longint):boolean;
var i,dem:longint;
begin
   dem:=0;
   for i:=1 to a do If a mod i=0 then dem:=dem+i;
   ht:=dem=a*2;
end;
function cp(a:longint):boolean;
var i:longint;
begin
   for i:=1 to a do If (i*i=a) then exit(true);
   exit(false);
end;
function dx(a:longint):boolean;
var i:longint; s,m:string;
begin
   m:='';
   str(a,s);
   for i:=length(s) downto 1 do m:=m+s[i];
   If m=s then exit(true) else exit(false);
end;
begin
clrscr;
   assign(d,'input.pas');reset(d);
   readln(d,a);
   If dx(a) then writeln('Co') else writeln('Khong');
   for i:=1 to a do If nt(i) then write(i,';'); writeln;
   for i:=1 to a do If ht(i) then write(i,';'); writeln;
   for i:=1 to a do If cp(i) then write(i,';'); writeln;
   for i:=1 to a do If dx(i) then write(i,';');
   close(d);
readln
end.

Câu hỏi trong lớp Xem thêm