В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История

Сдать решение задачи 5-Интересные числа
Полный : 100
Ограничение времени: 1 с
Ограничение памяти: 512M
Ограничение размера стека: 64M
Задача 5: Интересные числа
На занятиях математического кружка Сережа узнал об интересных числах — это числа, которые имеют простые делители только 2, 3 и 5. Теперь он хочет узнать наибольшее интересное число, не превосходящее числа n.

Входные данные
Программа получает на вход целое число n (2 ≤ n ≤ 1017).

Обратите внимание, что значение n может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные числа (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

Выходные данные
Программа должна вывести одно целое число — максимальное интересное число, не превосходящее n.

Система оценки
Решения, правильно работающие при n ≤ 104, будут оцениваться в

Решения, правильно работающие при n ≤ 108, будут оцениваться в

Примеры
Ввод

Вывод

Пояснение

7

6

Первые интересные числа — это 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30,
Поэтому максимальное интересное число, не превосходящее 7 — это 6.

100

100

Число 100 разлагается на множители, как 100 = 22 × 52, поэтому число 100 само является интересным.

Показать ответ
Ответ:
9Kira9
9Kira9
26.10.2020 03:51
//PascalABC.NET 3.2 сборка 1318

const
  n=4;

Var
  f:file of char;
  i,j,counter,FileLen:integer;
  s:string;
  val:char;
  ar:array[1..n] of integer;
  coms:array[1..n] of integer;
  begin
for i:=1 to n do
coms[i]:=i;
assign(f,'input.csv');
reset(f);i:=1;     //столбец матрицы
counter:=1;     //количество прочитанных элементов
FileLen:=filesize(f); //количество элементов в файле (включая разделители)
read(f,val); //на случай, если первая строка пуста
repeat 
 while (ord(val)<>10) and (ord(val)<>13) do //каждая строка заканчивается символами 10 и 13, а элементы разделяются ;   
begin
    if (val<>';') and (ord(val)<>10) and (ord(val)<>13) then
      begin
        ar[i]+=strtoint(val); //вводим значение из ячейки в переменную суммы         read(f,val); //cчитываем следующее значение
        inc(counter); //увеличиваем количество прочитанных
      end
      else
        begin
          read(f,val);    //пропускаем разделитель
          inc(counter);
        end;
    end;
   if (ord(val)=10) and (counter<FileLen) then  //в конце каждой строки стоят символы с кодами 10 и 13, пропускаем их
    begin
      read(f,val);
      inc(counter);
    end;
   if (ord(val)=13) and (counter<FileLen) then //когда дошли до конца строки
    begin
      inc(i);
       read(f,val);  //читаем с новой строки
      inc(counter);
    end;
until(counter=FileLen); //читаем пока количество элементов в файле не сравняется с количеством прочитанных
close(f);
for i:=1 to n-1 do    //когда лень писать быструю сортировку
  for j:=i+1 to n do
    if ar[i]<ar[j] then
      begin
        counter:=ar[i];
        ar[i]:=ar[j];
        ar[j]:=counter;
        counter:=coms[i];
        coms[i]:=coms[j];
        coms[j]:=counter;
      end;
for i:=1 to n do
writeln(i,'st place-',coms[i],' command -',ar[i],' points');
end.
0,0(0 оценок)
Ответ:
winterwhite123
winterwhite123
02.08.2020 10:49
Const   n = 5; var   i: integer;   a: array[1..n * 2 + 1] of integer; begin   writeln('исходный массив: ');   for i : = 1 to 2 * n do   begin       a[i] : = random(99) + 1;       write(a[i] : 5);   end;   for i : = 2 * n + 1 downto n + 1 do       a[i] : = a[i - 1];   a[n + 1] : = 0;   writeln();   writeln('полученный массив: ');   for i : = 1 to 2 * n + 1 do       write(a[i] : 5); end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота