e-olymp 446. Ровные делители

Задача

Натуральное число [latex] m [/latex] называется ровным делителем числа [latex] n [/latex], если частное и остаток от деления [latex] n [/latex] на [latex] m [/latex] равны. По заданному натуральному числу [latex] n [/latex] найти количество его ровных делителей.

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

Натуральное число [latex] n (1 ≤ n ≤ 10^{6}) [/latex].

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

Выведите искомое количество ровных делителей числа [latex] n [/latex].

Тесты

Входные данные Выходные данные
5 1
20 2
200 6
653 1
5982 4

Код программы

Решение

Для решения этой задачи сперва введем переменную q, в которой будем хранить количество ровных делителей числа [latex] n [/latex]. Затем запустим цикл, который будет проверять каждое из чисел от [latex] 1 [/latex] до [latex] n [/latex] включительно, является ли оно ровным делителем. Если условие выполняется, то увеличиваем значение, хранящееся в q на единицу. После цикла выведем искомое на экран.

Ссылки

Условие задачи на e-olymp
Код решения на Ideone

e-olymp 4718. Привет, Гарри!

Задача взята с сайта e-olymp

Задача

Напишите программу, которая приветствует пользователя, выводя слово Hello, имя пользователя и знаки препинания в следующем виде: Hello, Harry

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

В единственной строке вводится имя пользователя.

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

В первой строке выведите приветствие.

Тесты

# ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
1 Harry Hello, Harry
2 Peter Hello, Peter
3 Emily Hello, Emily
4 Anna-Maria Hello, Anna-Maria
5 Zhao Yun Hello, Zhao Yun

Код

Решение

Для того, чтобы задать переменную-строку, воспользуемся библиотекой <string>. Далее, введём переменную, к примеру name (имя). В строке вывода зададим неизменную часть фразы «Hello, « и саму переменную.

Ссылки

ideone

e-olymp

Решение задачи, юный садовод

Решение задачи, юный садовод-https://www.e-olymp.com/ru/problems/248

Я смог найти два способа решения.

Первый способ-это сумма арефметической прогресии.

#include <iostream>

using namespace std;

int main() {

          int n, res;

          cin >>n;

res=((22+2(n-1))/2)*n;

          cout << (res+1);

          return 0;

}

И второй способ, с помощью цыкла.

#include <iostream>

using namespace std;

int main() {

           int n,a=0,res=0;

           cin >> n;

           for (int k=0; k<n; k++ ) {

a = a + 2;

res = res + a;

}

             cout << (res+1);

             return 0;

}

 

e-olymp 206. Турист

Задача

Гена собирается на туристический слет учеников своей школы. В своем классе он был назначен ответственным за палатки. У себя дома он нашел 3 палатки: первая их них весит [latex]a_1[/latex] килограмм и вмещает [latex]b_1[/latex] человек, вторая весит [latex]a_2[/latex] килограмм и вмещает [latex]b_2[/latex] человек, третья весит [latex]a_3[/latex] килограмм и вмещает [latex]b_3[/latex] человек.

В классе Гены [latex]k[/latex] человек. Выясните, может ли он выбрать палатки так, чтобы в них все могли поместиться. При этом учитывайте, что выбранные палатки должны суммарно весить не более [latex]w[/latex] килограмм.

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

Первая строка содержит два целых числа [latex]k[/latex] и [latex]w[/latex] ([latex]1 \le k \le 15[/latex], [latex]1 \le w \le 30[/latex]). Вторая строка содержит шесть целых чисел: [latex]a_1,  a_2,  a_3,  b_1,  b_2,  b_3[/latex] ([latex]1 \le a_1,  a_2,  a_3 \le 15[/latex], [latex]1 \le b_1,  b_2,  b_3 \le 30[/latex]).

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

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

Тесты

# ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
1 10 10

5 5 6 6 4 5

YES
2 2 2
2 1 2 1 1 1
NO
3 15 30
10 3 10 5 11 7
NO
4 8 8
5 4 4 5 3 6
YES
5 5 30
6 1 12 2 10 1
NO

Код программы

 

Решение задачи

Путем несложного перебора получим несколько вариантов выбора палаток:

  • Взять одну (#1, #2, #3);
  • Взять две (#1 + #2, #2 + #3, #1 + #3);
  • Взять все три.

С помощью условного оператора if проверим каждый на выполнение условий вместимости и веса, и если хотя бы один из вариантов окажется удовлетворительным — будет выведено YES, в противном случае — NO.

 

Ссылки

E-Olymp

Ideone

 

e-olymp 939. Квадрат суммы

Задача взята с сайта e-olimp.

Задача

Найти квадрат суммы цифр двузначного натурального числа.

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

Одно натуральное двузначное число.

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

Квадрат суммы цифр заданного числа.

Тесты

# Входные данные Выходные данные
1 23 25
2 25 49
3 36 81
4 60 36
5 99 324

Код

Решение

Чтобы двузначное натуральное число [latex] n [/latex] разбить на два числа, содержащих соответственно его первую цифру ([latex] с1 [/latex]) и вторую — ([latex] с2 [/latex]) проведем следующие действия. [latex] c2 = n[/latex] % [latex]10[/latex], в то время как [latex] c1 = n / 10 [/latex]. Теперь, чтобы получить квадрат суммы цифр двузначного натурального числа, сложим два эти числа и умножим еще раз на их сумму [latex] (c2 + c1) * (c2 + c1) [/latex].

Ссылки

ideone

e-olymp

 

e-olymp.com 4716. Делёж яблок — 1

Задача: 

n школьников делят k яблок поровну, неделящийся остаток остаётся в корзинке. Сколько яблок достанется каждому школьнику?

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

Два положительных целых числа n и k, не превышающие 1500 — редко в школе бывает больше учеников, да и много яблок тоже кушать вредно…

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

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

Тесты:

Входные данные Выходные данные
3;14 4
10;100 10
20;20 1

Решение:

Объяснение:

Поскольку и общее кол-во яблок, и кол-во школьников, и кол-во яблок — целые числа, меньше 1500, то используем тип данных int.  Искомое кол-во яблок, доставшееся каждому школьнику, соответственно, [latex] k\div n\ [/latex].

ideone