1. Trang chủ
  2. » Giáo Dục - Đào Tạo

de thi tin hoc tre khong chuyen

5 221 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 21,14 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Dữ liệu vào: Cho trong file văn bản INRA.INP có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương N.. Dữ liệu ra: Ghi a file văn bản INRA.OUT có cấu trúc như sau.. - Dòng 1: Ghi số nguyên

Trang 1

Trường THCS Song Mai

Họ và tên: Dương Thị Thu Trang

ĐỀ BÀI

Cho số nguyên dương N, kiểm tra đó là số chẵn hay số lẻ.

Yêu cầu: Số nguyên dương N nằm thỏa mãn 0 ≤ N ≤ 32000.

Dữ liệu vào: Cho trong file văn bản INRA.INP có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N.

Dữ liệu ra: Ghi a file văn bản INRA.OUT có cấu trúc như sau.

- Dòng 1: Ghi số nguyên dương N và là số chẵn hay lẻ theo thứ tự từ trái sang

phải được ghi cách nhau ít nhất một dấu cách.

Ví dụ:

Cho số nguyên dương X, khi đảo ngược trật tự các chữ số của X ta sẽ thu được một số nguyên dương Y, Y được gọi là số đảo ngược của X.

Ví dụ: X = 613 thì Y = 316 là số đảo ngược của X.

Số nguyên dương Y được gọi là số nguyên tố nếu nó chỉ có hai ước số là 1

và chính nó, số 1 không phải là số nguyên tố.

Cho hai số nguyên dương P và Q (1 ≤ P ≤ Q ≤ 2109; Q - P ≤ 105).

Yêu cầu: Hãy tìm tất cả các số nguyên dương X nằm thỏa mãn P ≤ X ≤ Q và số

đảo ngược của số X là số nguyên tố.

Dữ liệu vào: Cho trong file văn bản TIMSO.INP có cấu trúc như sau:

- Dòng 1: Ghi hai số nguyên dương P Q, hai số được ghi cách nhau ít nhất một

dấu cách.

Dữ liệu ra: Ghi ra file văn bản TIMSO.OUT trên nhiều dòng, mỗi dòng ghi một

số nguyên X tìm dược.

Ví dụ:

TIMSO.INP TIMSO.OUT

13 14 16 17

Cho hai số nguyên dương M và N, M có p chữ số và N có q chữ số.

Yêu cầu: Tính tổng của hai số M và N.

Dữ liệu vào: Cho trong file văn bản TONG.INP có cấu trúc như sau:

TIMSO.INP TIMSO.OUT

Trang 2

- Dòng 1: Ghi số nguyên dương p là số lượng chữ số của M (1 ≤ p ≤ 30000).

- Dòng 2: Ghi p chữ số của M theo thứ tự từ trái sang phải, các chữ số được ghi

cách nhau ít nhất một dấu cách.

- Dòng 3: Ghi số nguyên dương q là số lượng chữ số của N (1 ≤ q ≤ 30000).

- Dòng 4: Ghi q chữ số của N theo thứ tự từ trái sang phải, các chữ số được ghi

cách nhau ít nhất một dấu cách.

Dữ liệu ra: Ghi ra file văn bản TONG.OUT theo cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương k là số lượng chữ số của tổng tìm được.

- Dòng 2: Ghi k chữ số của tổng tìm được theo thứ tự từ trái sang phải, các chữ

số được ghi cách nhau ít nhất một dấu cách.

Ví dụ:

6

2 2 3 2 3 9 3

2 4 7

6

2 2 3 4 8 6

Hướng dẫn chấm

Chương trình gợi ý:

Câu 1: (40 điểm) In ra

Program Tim_so;

Const fi=' INRA.INP';

fo='INRA.OUT' ;

Var N:integer;

Procedure Read_Data;

Var F:text;

Begin

Assign(f,fi);

Reset(f);

Read(f,N);

Close(f);

End;

Procedure Write_Data;

Var f:text;

Begin

Assign(f,fo);

Rewrite(f);

Write(fo,N);

If (N mod 2 = 0) then Write(fo,’ la so chan’)

else

Write(fo ,’ la so le’);

Close(f);

End;

BEGIN

Read_Data;

Trang 3

Write_Data;

END

Câu 2: (35 điểm) Tìm số

Program Tim_so;

Const fi='TIMSO.INP';

fo='TIMSO.OUT' ;

Var P,Q:longint;

Time:Longint;

Times:Longint absolute 0:$46C;

Function NT(K:longint):Boolean;

Var Can,i:Longint;

Begin

If (K=2) or (K=3) then Begin NT:=True;Exit; End;

If (K<2) or (K mod 2 = 0) or (K mod 3 = 0) then Begin NT:=False; Exit; End;

NT:=True;

i:=5;

Can:=Trunc(sqrt(K));

While i<=Can do

Begin

if (K mod i = 0) or (K mod (i+2) =0) then Begin NT:=False; Exit; End

ELse inc(i,6);

End;

End;

Function Daoso(N:longint):longint;

Var S:longint;

Begin

S:=0;

While N<>0 do

Begin

S:=S*10+ (N mod 10);

N:=N div 10;

End;

Daoso:=S;

End;

Procedure Read_Data;

Var F:text;

Begin

Assign(f,fi);

Reset(f);

Read(f,P,Q);

Close(f);

End;

Procedure Write_Data;

Var f:text;

j:longint;

Begin

Trang 4

Assign(f,fo);

Rewrite(f);

for j:=P to Q do

if NT(Daoso(j)) then Writeln(f,j);

Close(f);

End;

BEGIN

Time:=Times;

Read_Data;

Write_Data;

Writeln((Times-Time)/18.2:0:2);

END

Câu 3: (35 đi m) Tính t ng ể ổ

Program Tinh_tong;

Const fi= 'TONG.INP';

fo= 'TONG.OUT';

MaxN=30000;

Type mmc=Array [0 MaxN] of byte; Var N,M,Top:Longint;

A,B:mmc;C:^mmc;

Procedure Read_Data;

Var f:text;i:Longint;

Begin

Assign(f,fi);

Reset(f);

Readln(f,N);

For i:=1 to N do

Read(f,A[i]);

Readln(f);

Readln(f,M);

New(C);

Fillchar(C^,Sizeof(C^),0);

For i:=1 to M do

Read(f,C^[i]);

Close(f);

End;

Procedure Init;

Var Tg,k:Longint;

Begin

If M=N then Begin Top:=N;B:=C^;Exit End;

If N > M Then

Begin

Tg:=N-M;

For K:=M Downto 1 do

B[K+Tg]:=C^[K];

Top:=N;

End

Else

Begin

Trang 5

Tg:=M-N;

For K:=N Downto 1 do B[K+Tg]:=A[K];

A:=C^;

Top:=M;

End;

Fillchar(C^,Sizeof(C^),0); End;

Procedure Process;

Var i,Nguyen,Tg:Longint; Begin

Nguyen:=0;

For i:= Top Downto 0 do Begin

Tg:=(A[i]+B[i]+Nguyen); C^[i]:= Tg mod 10; Nguyen:=Tg Div 10; End;

End;

Procedure Write_Data;

Var f:text;i:Longint;

Begin

Assign(f,fo);

Rewrite(f);

if C^[0]>0 then

Begin

Writeln(f,Top+1);

Write(f,C^[0],' ');

End

Else

Writeln(f,Top);

For i:=1 to Top do

Write(f,C^[i], ' ');

Close(f);

Dispose(C);

End;

BEGIN

Read_Data;

Init;

Process;

Write_Data;

END

Ngày đăng: 04/12/2019, 19:49

TỪ KHÓA LIÊN QUAN

w