Tin học Tây Sơn

Bài 4 HSG 1819

Go down

Bài 4 HSG 1819

Bài gửi by Admin on Tue Nov 06, 2018 4:27 pm

Bài 4: (4,0 điểm)
Số nguyên dương A được gọi là số lẻ hoàn toàn nếu mọi chữ số đều lẻ, chẳng hạn 9, 513, 77777. Có rất nhiều số chẵn phân tích được thành tổng của hai số lẻ hoàn toàn, ví dụ: số 2 = 1 + 1; số 28=9+19 hoặc 28=11+17 hoặc 28=13+15; số 4752 = 1377 + 3375… những số chẵn không thể phân tích được thành tổng của hai số lẻ hoàn toàn được gọi là số đặc biệt, ví dụ: 220, 6218... Hãy viết chương trình hiển thị ra màn hình số đặc biệt lớn nhất nhỏ hơn n cho trước ( n<109).



INPUT
OUTPUT
N=240220
avatar
Admin
Admin
Admin

Posts : 640
Reputation : -35
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Bài 4 HSG 1819

Bài gửi by nguyen77 on Thu Nov 08, 2018 1:52 pm

Code:

program bt;
uses crt;
var i,n,dem:longint;
FUNCTION leht(x:longint):boolean;
begin
leht:=false;
while (x mod 2=1) and (x>0) do
        x:=x div 10;
if x=0 then
        leht:=true
        else
        leht:=false;
end;

function kt(x:longint):boolean;
var i:longint; kt1:boolean;
begin
i:=1;
kt1:=false;
while not kt1 and (i<=x div 2) do
if (leht(i)=true) and (leht(x-i)=true) then
kt1:=true
else
inc(i);
kt:=kt1;
end;

begin
clrscr;
write(' nhap so n la ');
readln(n);
dem:=0;
for i:=n-1 downto 2 do
IF  (I MOd 2=0) and (kt(i)=false) then
        begin
        write(i);
        inc(dem);
        readln;
        exit;
        end;
if dem=0 then
        write(' ko co so nao ');

readln;
end.
avatar
nguyen77
Năng động
Năng động

Posts : 58
Reputation : -22
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 4 HSG 1819

Bài gửi by Nguyễn Văn Biên on Thu Nov 08, 2018 1:52 pm

Code:
program bai4;
uses crt;
var x,n:longint;
    ok:boolean;

function le(m:longint):boolean;
var i:longint;
begin
        le:=true;
        while le and (m>0) do
   begin
      if m mod 2= 0 then le:=false;
      m:=m div 10
   end
end;

function ktra(x:longint):boolean;
var j:longint;
begin
        j:=1; ktra:=false;
        while not ktra and (j<=x div 2) do
        if le(j) and le(x-j) then ktra:=true
        else inc(j)
end;

Begin
        clrscr; ok:=true;
        write('N = '); readln(n);
        for x:=n-1 downto 2 do
        if (x mod 2 = 0) and not ktra(x) then
        begin
                write(x); ok:=false;
                break
        end;
        if ok then write('Khong co so thoa man');
        readln;
end.
avatar
Nguyễn Văn Biên
S-mod
S-mod

Posts : 170
Reputation : 22
Join date : 18/06/2018
Age : 14
Location : ?

Xem lý lịch thành viên https://bien2004official.blogspot.com

Về Đầu Trang Go down

Re: Bài 4 HSG 1819

Bài gửi by nganvonhat123 on Thu Nov 08, 2018 1:54 pm

Code:
program bai4;
 uses crt;
        var n,i:longword;

        function slht(n:longword):boolean;
                var kt:boolean;
                     i:longword;

        begin
                kt:=true;

               while (n>0)  do
                        begin

                                if n mod 2=0 then
                                        begin
                                                kt:=false;
                                                break;
                                        end;
                                        n:=n div 10;

                        end;
                slht:=kt;
        end;

        function kit(n:longword):boolean;
                var i:longword;
                   kt:boolean;
        begin
                kt:=false;
                for i:=1 to n do
                        if (slht(i)) and (slht(n-i)) then

                                        kt:=true;



                                kit:=kt;
        end;

begin
 clrscr;
 repeat write('nhap n: ');readln(n) until n<1000000000;
 for i:=n-1 downto 1 do if (kit(i)=false) and (i mod 2=0) then begin  write(i,' ');break;end;
 readln;
end.


Được sửa bởi nganvonhat123 ngày Thu Nov 08, 2018 2:00 pm; sửa lần 1.
avatar
nganvonhat123
Năng động
Năng động

Posts : 56
Reputation : -23
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 4 HSG 1819

Bài gửi by mainhatthong2004 on Thu Nov 08, 2018 1:57 pm

thong:
program bt;
uses crt;
var i,n,dem:longint;
FUNCTION leht(x:longint):boolean;
begin
leht:=false;
while (x mod 2=1) and (x>0) do
x:=x div 10;
if x=0 then
leht:=true
else
leht:=false;
end;

function kt(x:longint):boolean;
var i:longint; kt1:boolean;
begin
i:=1;
kt1:=false;
while not kt1 and (i<=x div 2) do
if (leht(i)=true) and (leht(x-i)=true) then
kt1:=true
else
inc(i);
kt:=kt1;
end;

begin
clrscr;
write(' nhap so n la ');
readln(n);
dem:=0;
for i:=n-1 downto 2 do
IF (I MOd 2=0) and (kt(i)=false) then
begin
write(i);
inc(dem);
readln;
exit;
end;
if dem=0 then
write(' ko co so nao ');

readln;
end.
avatar
mainhatthong2004
Năng động
Năng động

Posts : 62
Reputation : -24
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 4 HSG 1819

Bài gửi by huynhtanluc on Thu Nov 08, 2018 2:16 pm

Code:
Program b4;
uses crt;
var n,i:longint;

        function le(n:longint):boolean;
        var i:longint;
        begin
        le:=true;
        while n>0 do
        begin
        if n mod 2=0 then le:=false;
        n:=n div 10;
        end;
        end;

        function kt(n:longint):boolean;
        var i:longint;
        begin
        kt:=false;
        for i:=1 to n do
        if le(i) and (le(n-i)) then kt:=true;
        end;

Begin
        clrscr;
        write('Ban hay nhap so n: ');readln(n);
        for i:=n-1 downto 2 do
        if (i mod 2=0) and (not kt(i)) then
        begin
        writeln(i);
        break;
        end;
        readln;
End.
avatar
huynhtanluc
Năng động
Năng động

Posts : 52
Reputation : -14
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 4 HSG 1819

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết