Консультация № 194261
21.12.2018, 18:17
0.00 руб.
0 4 1
Здравствуйте! У меня возникли сложности с такими вопросами, помогите, пожалуйста:
1)Ввести многозначное целое число и преобразовать его таким образом, чтобы цифры, находящиеся на четных местах, оказались бы не менее цифр, находящихся на нечетных местах. Начальное и преобразованное числа выдать на печать.
2)В интервале целых чисел [n1; n2] найти такое, произведение нечетных делителей которого - наименьшее.


Обсуждение

давно
Профессор
401888
1232
21.12.2018, 18:33
общий
Адресаты:
Уточните пожалуйста в чем писать, если Паскаль, то какой, если Delphi или Lazarus, то консольное или оконное приложение.
И еще по задаче 1, можно ли использовать строковое представление числа?
давно
Посетитель
402002
11
21.12.2018, 19:05
общий
PascalABC.NET
Нельзя, все строится с использованием простых циклических алгоритмов
давно
Старший Модератор
31795
6196
27.12.2018, 15:40
общий
27.12.2018, 15:41
Адресаты:
Цитата: luxv99
1)Ввести многозначное целое число и преобразовать его таким образом, чтобы цифры, находящиеся на четных местах, оказались бы не менее цифр, находящихся на нечетных местах. Начальное и преобразованное числа выдать на печать.

Если пользователь введет число 123456 т.е. 123456, красные - нечетные, зеленые - четные. Даже с таким простым числом видно, что 1<2<3.
Уточните задание.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
29.12.2018, 17:25
общий
это ответ
Здравствуйте, luxv99!

1)
Цитата: puporev
можно ли использовать строковое представление числа

Цитата: luxv99
Нельзя, все строится с использованием простых циклических алгоритмов

Т.е. Массивы использовать нельзя, т.к. строка - это тоже массив, но не чисел, а символов.
К массивам можно применить "простые циклические алгоритмы", остается только рекурсивный разбор числа, а это уже выходит за рамки простого циклического алгоритма.
Таким образом уточняйте задание.

2)
нечет*нечет:=нечет, минимальный нечет =3, 1 - не считается
[code lang=pascal]var
a,b,c,d,e,f,g:integer;
begin
write('enter n1:');
readln(a);
write('enter n2:');
readln(b);
if a>b then
begin
c:=a;
a:=b;
b:=a;
end;
d:=0;
for c:=a to b do
begin
e:=1;
f:=c div 2;
while f>1 do
begin
if((c mod f)=0)and odd(f) then e:=e*f;
dec(f);
end;
if((d=0)or(d>e))and(e<>1)then
begin
d:=e;
g:=c;
end;
end;
writeln('result:',g,'=',d);
end.[/code]
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа