Tải bản đầy đủ (.doc) (11 trang)

CHUYÊN đề số học (1)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (90.39 KB, 11 trang )

Các loại số
1:SỐ NGUYÊN TỐ
2:SỐ SIÊU NGUYÊN TỐ
3:SỐ PHẢN NGUYÊN TỐ.
4:SỐ CHÍNH PHƯƠNG
6:PALINDROM.
7:SỐ AMSTRONG
*CHƯƠNG TRÌNH ĐẦY ĐỦ NHẤT VỀ SỐ HỌC.
1:SỐ NGUYÊN TỐ
- DN: số nguyên tố là có các ước là 1 và chính nó.
- CHƯƠNG TRÌNH:
function ngto(x:longint):boolean;
var kq:boolean;
i:integer;
begin
kq:=true;
if x<2 then kq:=false;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then
kq:=false;
ngto:=kq;
end;

2:SỐ SIÊU NGUYÊN TỐ
- DN:là số nguyên tố mà khi ta bỏ một chữ số bênh phải thì
nó vẫn là số nguyên tố;
- CHƯƠNG TRÌNH


function ngto(x:longint):boolean;
var kq:boolean;


i:integer;
begin
kq:=true;
if x<2 then kq:=false;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then
kq:=false;
ngto:=kq;
end;
function sieungto(x:longint):boolean;
var kq:boolean;
begin
if ngto(x)=true then
while x>9 do
begin
x:=x div 10;
if ngto(x)=true then
kq:=true
else
kq:=false;
if kq=false then
break;
end
else
kq:=false;
sieungto:=kq;
end;

3:SỐ PHẢN NGUYÊN TỐ.



- DN:là số không phải nguyên tố và khi ta bỏ các chữ số bên phải
thì nó vẫn không là số nguyên tố
- CHƯƠNG TRÌNH:
function ngto(x:longint):boolean;
var kq:boolean;
i:integer;
begin
kq:=true;
if x<2 then kq:=false;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then
kq:=false;
ngto:=kq;
end;
function phanngto (X:longint):boolean;
var kq:boolean;
begin
if ngto(n)=false then
while x>9 do
begin
x:=x div 10;
if ngto(x)=true then
kq:=false
else
kq:=true;
if kq=false then
break;
end
else

kq:=false;
phanngto:=kq;


end;

4:SỐ CHÍNH PHƯƠNG
- DN: là số mà bình phương của 1 số bằng chính nó
- CHƯƠNG TRÌNH:
function chinhphuong(x:longint):boolean;
var kq:boolean;
i:integer;
begin
kq:=false;
for i:=1 to trunc(sqrt(x)) do
if sqr(i)=x then
begin
kq:=true;
break;
end;
chinhphuong:=kq;
end;

5:SỐ HOÀN THIỆN( SỐ HOÀN CHỈNH).
- DN: là số mà có tổng các ước của nó bằng chính nó.
- CHƯƠNG TRÌNH:
function hoanthien(x:longint):boolean;
var kq:boolean;
i:integer;
tong:longint;

begin
kq:=false;
tong:=0;
for i:=1 to x-1 do
if x mod i=0 then
tong:=tong+i;


if tong=x then
kq:=true;
hoanthien:=kq;
end;

6:PALINDROM.
-DN: là số mà khi đọc từ phải sang trái bằng với đọc từ trái
sang phải
-CHƯƠNG TRÌNH:
function palindrom(x:longint):boolean;
var kq:boolean;
i,code:integer;
num:longint;
st,s:string;
begin
kq:=false;
s:='';
str(x,st);
for i:=length(st) downto 1 do
s:=s+st[i];
val(s,num,code);
if num=x then

kq:=true;
palindrom:=kq;
end;

7:SỐ AMSTRONG.
- DN:là số mà tổng lũy thừa k của các chữ số bằng chính nó,
trong đó k là số chữ số cùa số đó
- CHƯƠNG TRÌNH
function demchuso(so:int64):int64;
var dem:integer;
begin


dem:=0;
while so<>0 do
begin
dem:=dem+1;
so:=so div 10;
end;
demchuso:=dem;
end;
function luythua(a,k:longint):longint;
var kq:int64;
i:integer;
begin
kq:=1;
for i:=1 to k do
kq:=kq*a;
luythua:=kq;
end;

function amstrong(n:int64):boolean;
var num,s:int64;
k:integer;
kq:boolean;
begin
num:=n;
kq:=false;
k:=demchuso(n);
s:=0;
while n<>0 do
begin
s:=s+luythua(n mod 10,k);
n:=n div 10;
end;


if s=num then kq:=true;
amstrong:=kq;
end;

*CHƯƠNG TRÌNH ĐẦY ĐỦ NHẤT VỀ SỐ HỌC.
program sohoc;
uses crt;
var n:longint;
a:byte;
function ngto(x:longint):boolean;
var kq:boolean;
i:integer;
begin
kq:=true;

if x<2 then kq:=false;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then
kq:=false;
ngto:=kq;
end;
function sieungto(x:longint):boolean;
var kq:boolean;
begin
if ngto(x)=true then
while x>9 do
begin
x:=x div 10;
if ngto(x)=true then
kq:=true
else
kq:=false;
if kq=false then
break;
end
else


kq:=false;
sieungto:=kq;
end;
function chinhphuong(x:longint):boolean;
var kq:boolean;
i:integer;
begin

kq:=false;
for i:=1 to trunc(sqrt(x)) do
if sqr(i)=x then
begin
kq:=true;
break;
end;
chinhphuong:=kq;
end;
function hoanthien(x:longint):boolean;
var kq:boolean;
i:integer;
tong:longint;
begin
kq:=false;
tong:=0;
for i:=1 to x-1 do
if x mod i=0 then
tong:=tong+i;
if tong=x then
kq:=true;
hoanthien:=kq;
end;
function palindrom(x:longint):boolean;
var kq:boolean;
i,code:integer;
num:longint;
st,s:string;



begin
kq:=false;
s:='';
str(x,st);
for i:=length(st) downto 1 do
s:=s+st[i];
val(s,num,code);
if num=x then
kq:=true;
palindrom:=kq;
end;
function phanngto (X:longint):boolean;
var kq:boolean;
begin
if ngto(n)=false then
while x>9 do
begin
x:=x div 10;
if ngto(x)=true then
kq:=false
else
kq:=true;
if kq=false then
break;
end
else
kq:=false;
phanngto:=kq;
end;
function demchuso(so:int64):int64;

var dem:integer;
begin
dem:=0;
while so<>0 do
begin


dem:=dem+1;
so:=so div 10;
end;
demchuso:=dem;
end;
function luythua(a,k:longint):longint;
var kq:int64;
i:integer;
begin
kq:=1;
for i:=1 to k do
kq:=kq*a;
luythua:=kq;
end;
function amstrong(n:int64):boolean;
var num,s:int64;
k:integer;
kq:boolean;
begin
num:=n;
kq:=false;
k:=demchuso(n);
s:=0;

while n<>0 do
begin
s:=s+luythua(n mod 10,k);
n:=n div 10;
end;
if s=num then kq:=true;
amstrong:=kq;
end;
BEGIN
clrscr;
write('Nhap n= ');
readln(n);
writeln('1:KT so nguyen to');


writeln('2:KT so sieu nguyen to');
writeln('3:KT so chinh phuong');
writeln('4:KT so hoan thien');
writeln('5:KT so phan nguyen to ');
writeln('6:KT so amstrong');
writeln('7:KT so palindrom');
write('Nhap kieu so can kiem tra: '); readln(a);
case a of
1:write(ngto(n));
2:write(sieungto(n));
3:write(chinhphuong(n));
4:write(hoanthien(n));
5:write(phanngto(n));
6:write(amstrong(n));
7:write(palindrom(n));

end;
readln;
END.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×