Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Алиса знает, что если у числа n нет делителя, не превосходящего\(\sqrt n\), то число n - простое и его минимальным простым делителем будет само число n. Вас попросили написать программу, которая будет находить минимальный простой делитель у любого числа.

Решение оформите с использованием функций. Напишите следующие функции:
- функцию isPrime(n), которая будет принимать целое число и возвращать True, если число простое и False - если не простое.
- функцию minDivisor(n), которая будет возвращать минимальный простой делитель.

Основная программа должна содержать ввод числа, вызов функции minDivisor(n) и вывод ответа.

Входные данные
Программа получает на вход натуральное число n > 1.

Выходные данные
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 4 2
2 5 5
Пиксельный экран выводит каждую цифру в виде картинки 3х5.
1 2 3 4 5
 *
 *
 *
 *
 *
***
  *
***
*
***
***
  *
***
  *
***
* *
* *
***
  *
  *
***
*
***
  *
***
6 7 8 9 0
***
*
***
* *
***
***
  *
 *
*
*
***
* *
***
* *
***
***
* *
***
  *
***
***
* *
* *
* *
***

На вход программе подается натуральное число n (n <= 109).

Выведите это число в виде картинки на пиксельном экране. Каждую цифру выводите с новой строки. Порядок цифр должен соответствовать порядку цифр в исходном числе (то есть сначала выводится первая цифры, затем - вторая и т. д.). Если после звездочки (*) в строке больше ничего нет, то пробелы выводить не нужно.

 
 
Примеры
Входные данные Выходные данные
1 12
 *
 *
 *
 *
 *
***
  *
***
*  
***
Средние значение между какими-либо данными можно вычислять разным способом. В математике выделяют следующие средние значения:
  1. среднее арифметическое чисел a и b\(\dfrac{a+b}{2}\)
     
  2. среднее геометрическое чисел a и b: \( \sqrt{a\cdot b}\);
     
  3. среднее гармоническое чисел a и b\(\dfrac{2ab}{a+b}\);
     
  4. среднее квадратичное чисел a и b: \( \sqrt{\dfrac{a^2+b^2}{2}}\).

Формат входных данных
На вход подается два вещественных числа a и (1 <= a, b <= 1000).

Формат выходных данных
Программа должна вывести 4 числа – среднее арифметическое, геометрическое, гармоническое и квадратичное. Каждое число выводиться с точностью не менее 6 знаков после запятой на отдельной строке. 
Дано положительное вещественное число. Выведите его первую цифру после десятичной точки.

Формат входных данных
На вход подается вещественное число.

Формат выходных данных
Выведите ответ на задачу.
Пусть  \(N(n,k) = n+\overline{nn}+\overline{nnn} + ... +\underbrace{\overline{n..n}}_{k}\). По заданному значению n и k посчитайте значение N(n, k).

Входные данные
Программа получает на вход две строки. В первой строке записано натуральное число n (1<=n<=9), во второй строке - натуральное число k (1 <= k <= 10).

Выходные данные
Выведите на экран N(n, k) в виде выражения и ответа.
 
Примеры
Входные данные Выходные данные
1
1
3
1+11+111=123
Пусть S(n) - сумма цифр в десятичной системе счисления целого числа n. Например, S(123)=1+2+3=6.

Для двух трехзначных целых чисел A и B, найдите большее из S(A) и S(B).

Входные данные
На вход подается одна строка, содержащая два целых числа A и B (100 <= A, B <= 999).

Выходные данные
Выведите значение большего из значений S(A) и S(B). Если они равны, выведите S(A).

Обратите внимание, что при решении задачи нельзя пользоваться операциями деления.
Примеры
Входные данные Выходные данные
1 123 234 9
Однажды, устав от похода в школу, Томми захотел узнать, сколько дней осталось до субботы. Мы знаем, что этот день был будним, и название дня недели было S (по-английски).Сколько дней оставалось до первой субботы после этого дня (считая саму субботу, но не считая день S)?

Входные данные
На вход подается строка S (S может быть  MondayTuesdayWednesdayThursday или Friday).

Выходные данные
Выведите на экран ответ на задачу

Используйте вложенные условия (конструкцию elif для языка Python и else if для других языков).
 
Примеры
Входные данные Выходные данные
1
Wednesday
3
Антон Б., суперспособный ученик 8 класса, обладает неудивительными математическими способностями. Побывав однажды на экскурсии в Колоколамске, он понял, что легко может написать программу, которая бы предсказывала стоимость его любимых конфет на любой промежуток дней вперед. 
Используя эту программу, Антон Б. решил  приобрести на все свои карманные деньги конфеты (а их у него было всего 10 рублей), затем, чуть позже, продать все купленные им конфеты. Таким образом, Антон Б. хочет заработать как можно больше денег на новый ноутбук. 
Так как  Антон Б. еще несовершеннолетний и один ездить в другие города не может, ему нужно понять, в какие из двух дней попросить старшего брата отвезти его в Колоколамск. Старший брат совершеннолетний и очень любит своего младшего брата, поэтому всегда готов ему помочь.
Так как Антон Б. очень торопится на кружок по информатике, он просит вас определить эти два дня в ближайшие N дней. 

Входные данные
В первой строке записано число N (2 <= N <= 100000) количество дней, на которые Антон Б. делает прогноз. Вторая строка содержит целых положительных чисел ai (1 <= i <= , 1 <= ai <=  5000 ), где ai - предсказанная стоимость конфет в i-й день.

Выходные данные

Выведите два числа: первое число - номер дня, в который Антон Б. поедет покупать конфеты, второе - номер дня, в который он поедет продавать конфеты. В случае, если таких вариантов дней несколько, выведите любой из них. Если Антон Б. в итоге не сможет получить прибыль ни при каких вариантах, то выведите два нуля.

 
Примеры
Входные данные Выходные данные
1
6
10 3 5 3 11 9
2 5 
2
4
5 5 5 5
0 0

Даны две целочисленные последовательности, каждая из которых имеет длину NA = (A1, A2, ..., AN) и B = (B1, B2, ..., BN).
Все элементы A различны. Все элементы B тоже разные.

Выведите следующие два значения.

  1. Количество целых чисел, содержащихся в обоих и B, появляющихся в одной и той же позиции в двух последовательностях. Другими словами, количество целых i чисел такое, что A= Bi.
  2. Количество целых чисел, содержащихся в обоих и B, появляющихся в разных позициях в двух последовательностях. Другими словами, количество пар целых (i, j) чисел, таких, что A= Bи i ≠ j.


Входные данные
Программа получает на вход три строки. В первой строке записано одно число N (1 <= N <= 1000) - количество чисел последовательности. Во второй строке записаны числа A1, A2, ..., AN, все числа различные. В третьей строке - числа B1, B2, ..., B, все числа различные (1 <= Ai, Bi <= 109). 

Выходные данные
Выведите в первой строке ответ на первый вопрос, во второй строке - на второй.
 
 
Примеры
Входные данные Выходные данные
1
4
1 3 5 2
2 3 1 4
1
2 
2
3
1 2 3
4 5 6
0
0

Анна Николаевна в детском саду играет с детьми в игру. По кругу стоят стулья. Все стулья пронумерованы от 1 до N (1 <= N <= 100000). Имя каждого ребенка закодировано натуральным числом, не превышающим 109. Анна Николаевна хлопает в ладоши раз  (|K| <= 100000) тихо или громко. Если Анна Николаевна хлопает в ладоши тихо, то все дети должны быстро пересесть на K стульев вправо. Если же Анна Николаевна хлопает в ладоши громко, то все дети должны быстро пересесть на K стульев влево. 

Чтобы Анне Николаевна было проще определять все ли дети пересели верно, напишите для нее программу, которая бы определяла положение каждого ребенка после пересаживания. 


В данной задаче нельзя использовать дополнительные массивы (списки). Обратите внимание, что нужно именно преобразовать имеющийся массив(список) и распечатать его целиком, а не создать новый, даже назвав его тем же самым именем (это возможно в языке Python).


Входные данные

В первой строке дано натуральное число N, во второй строке N целых чисел, а в последней целое число K. Все числа во входных данных не превышают 109. Если число K > 0, это означает, что Анна Николаевна хлопала в ладоши тихо. Число K < 0, это означает, что Анна  Николаевна хлопала в ладоши громко.


Выходные данные

Требуется вывести коды детей, которые будут занимать стулья с 1 по N после пересаживания. 

 
Примеры
Входные данные Выходные данные
1
5
5 3 7 4 6
3
7 4 6 5 3 

Дан массив, состоящий из целых чисел. Известно, что числа упорядочены по неубыванию (то есть каждый следующий элемент не меньше предыдущего). Напишите программу, которая определит количество различных чисел в этом массиве.


Входные данные

Сначала задано число N - количество элементов в массиве (1 <= N <= 100). Далее через пробел записаны N чисел - элементы массива. Массив состоит из целых чисел, находящихся в пределах от -231 до 231


Выходные данные

Необходимо вывести единственное число - количество различных чисел в массиве.

 
Примеры
Входные данные Выходные данные
1 5
1 1 1 2 2
2

Дан массив, состоящий из целых чисел. Напишите программу, которая в данном массиве определяет количество элементов, у которых имеются два соседних элемента и, при этом, оба соседних элемента меньше данного.


Входные данные

Сначала задано число N - количество элементов в массиве (1 <= N <= 10000). Далее через пробел записаны N чисел - элементы массива. Массив состоит из целых чисел.


Выходные данные

Необходимо вывести количество элементов массива, у которых два соседа и которые при этом строго больше обоих своих соседей.

 
Примеры
Входные данные Выходные данные
1
5
1 2 3 4 5
0
2
5
2 3 2 4 3
2
В колоде у Громозеки находятся карты, на которых написано по одному целому числу. Каждое число в колоде встречается ровно 4 раза. 
Таким образом, в колоде имеются 4 карты с числом 1, 4 карты с числом 2, ..., 4 карты с числом N. Всего в колоде 4*N карт.

Громозека перетасовал эти карты, а затем спрятал одну из них и дал вам стопку оставшихся 4*N-1 карт. На i-й карте (1<= i <=4*N−1) из стопки написано целое число Ai.

Найдите целое число, записанное на карте, которую спрятал Громозека.

Входные данные
Программа получает на вход две строки. Первая строка содержит целое число N (1 <= N <= 105).  Вторая строка содержит 4*N-1 целых чисел Ai (1 <= Ai <= 4*N−1. 1<= i <=4*N−1). Для каждого (1<=k<=N) существует не более 4 индексов i, таких, что Ai=k.


Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 3
1 3 2 3 3 2 2 1 1 1 2
3
2 1
1 1 1
1
3 4
3 2 1 1 2 4 4 4 4 3 1 3 2 1 3
2

Сегодня мальчик Саша на уроке математики узнал про фракталы. Учитель показывал так называемую «кривую дракона». Она представляет собой геометрическую фигуру, которая строится следующим образом: на первом шаге проводится отрезок из начала координатной плоскости в точку (0; 1). Далее на каждом шаге из конца фрактала повторяется уже нарисованная часть фигуры, повернутая на 90 градусов против часовой стрелки (см. рисунок).

После уроков Саша попробовал сам изобразить «кривую дракона», и теперь он хочет знать, в какой точке координатной плоскости он закончил рисовать фрактал, проделав описанные выше N шагов. Требуется написать программу, которая по заданному числу N определяет координаты конца фрактала после выполнения N шагов.



Входные данные
Вводится одно целое число N (1 <= N <= 30).

Выходные данные
Выведите два числа через пробел - координаты конца фрактала.
 
 
Примеры
Входные данные Выходные данные
1 2 1 1
2 4 2 -2
Громозека и Алиса играют в следующую игру. Изначально, они ставят на числовую прямую три точки в целые координаты. Затем, один из них стирает любую крайнюю точку и ставит ее посередине между двумя оставшимися в координату с целым числом. Если между оставшимися точками четное количество целых чисел, то можно поставить точку в любую из них.

Например, если изначально стояли точки в координатах 3, 6, 8, то первым ходом можно стереть точку с координатой 3 и поставить ее в координату 7. Или стереть точку с координатой 8 и поставить ее в координату 4 или 5.

Чтобы долго не думать, Громозека и Алиса решили, что на каждый ход они будут тратить не более двух секунд.

Вас просят вычислить, какое максимальное количество секунд будет продолжаться игра, если известно начальное расположение трех точек.

Входные данные
Программа получает на вход три целых числа A, B и C (1<=A < B < C <= 1000). Каждое число записано с новый строки.

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 3
6
8
4
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу.

Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 5
4
8
8
8
0
3
Питание школьника, при грамотной организации, должно обеспечивать содержание белков, жиров и углеводов в соотношении 10%:30%:60% (допускается погрешность +/- 1%). Детский лагерь составляет меню, состоящее из N различных продуктов. Для каждого продукта известна энергетическая ценность в белках (P), жирах (F) и углеводах (C), а также количество каждого вида продукта в меню (K).

Определите, является ли составленное меню сбалансированным или нет.


Входные данные
Программа получает на вход несколько строк. В первой строке записано число натуральное число N (N <= 100) количество различных продуктов. В каждой из следующих N строк записаны по 4 числа: Pi, Fi, Ci и Ki. Все числа вещественные, не превосходят 103.

Выходные данные
Выведите YES, если меню сбалансированное, и NO в противном случае. 
 
 
Примеры
Входные данные Выходные данные
1 3
0 1 1 2
1 2 7 1
3 7 13 1
YES
Для заданного натурального N найдите последнюю ненулевую цифру числа N!.

Входные данные
Программа получает на вход целое число (0 <= N <= 106).

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 8 2
2 10 8
По данному натуральному числу N найдите сумму чисел \(1 + {1\over {1!}} + {1 \over {2!}} + {1 \over {3!}}+... + {1 \over {N!}}\). Количество действий должно быть пропорционально N.

Входные данные
Программа получает на вход натуральное число N.

Выходные данные
Необходимо вывести  результат вычисления в виде действительного числа c точностью до 5 знаков после запятой.
 
 
Примеры
Входные данные Выходные данные
1 1 2
Поделиться
Класснуть