Народ последнюю задачку проверьте опять не могу найти ошибку УСЛОВИЕ: Дано натуральное четырехзначное число. Найти наименьшую нечетную цифру в числовой записи данного числа. Формат входных данных Входной файл содержит натуральное четырехзначное число. Формат выходных данных Выведите наименьшую нечетную цифру в числовой записи данного числа. Если нечетных цифр в числе нет, выведите в выходной файл -1.
РЕШЕНИЕ: PascalВыделить код1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var n,a,b,c,d:integer; f,g:text; begin assign(f,'input.txt'); assign(g,'output.txt'); reset(f); rewrite(g); readln(f,n); a:=n div 1000; b:=n div 100 mod 10; c:=(n mod 100) div 10; d:=n mod 10; if (a mod 2=0) and (b mod 2=0) and (c mod 2=0) and (d mod 2=0) and (n<>0) then writeln(g,'-1') else if (a<=b) and (a<=c) and (a<=d) then writeln(g,a) else if (b<=a) and (b<=c) and (b<=d)then writeln(g,b) else if (c<=a) and (c<=b) and (c<=d) then writeln(g,c) else if (d<=a) and (d<=b) and (d<=c) then writeln(g,d) else close(f); close(g); end.
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) var a: array of integer; i, n, m: integer; function simple(x:integer): boolean; var i: integer; begin Simple := false; if x < 2 then exit; if x mod 2 = 0 then exit; i := 3; while i <= sqrt(x) do begin if x mod i = 0 then exit; i +=2; end; Simple := true; end;
begin write('Количество элементов массива :');readln(m); SetLength(a, m); while n <= m - 1 do begin if simple(i) then begin a[n] := i; n +=1; end; i +=1; end; a.println; end.
УСЛОВИЕ:
Дано натуральное четырехзначное число. Найти наименьшую нечетную цифру в числовой записи данного числа.
Формат входных данных
Входной файл содержит натуральное четырехзначное число.
Формат выходных данных
Выведите наименьшую нечетную цифру в числовой записи данного числа. Если нечетных цифр в числе нет, выведите в выходной файл -1.
РЕШЕНИЕ:
PascalВыделить код1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var n,a,b,c,d:integer; f,g:text; begin assign(f,'input.txt'); assign(g,'output.txt'); reset(f); rewrite(g); readln(f,n); a:=n div 1000; b:=n div 100 mod 10; c:=(n mod 100) div 10; d:=n mod 10; if (a mod 2=0) and (b mod 2=0) and (c mod 2=0) and (d mod 2=0) and (n<>0) then writeln(g,'-1') else if (a<=b) and (a<=c) and (a<=d) then writeln(g,a) else if (b<=a) and (b<=c) and (b<=d)then writeln(g,b) else if (c<=a) and (c<=b) and (c<=d) then writeln(g,c) else if (d<=a) and (d<=b) and (d<=c) then writeln(g,d) else close(f); close(g); end.
var
a: array of integer;
i, n, m: integer;
function simple(x:integer): boolean;
var
i: integer;
begin
Simple := false;
if x < 2 then exit;
if x mod 2 = 0 then exit;
i := 3;
while i <= sqrt(x) do
begin
if x mod i = 0 then exit;
i +=2;
end;
Simple := true;
end;
begin
write('Количество элементов массива :');readln(m);
SetLength(a, m);
while n <= m - 1 do
begin
if simple(i) then begin
a[n] := i;
n +=1;
end;
i +=1;
end;
a.println;
end.
Тестовое решение:
Количество элементов массива :25
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97