Задача
Натуральное число $m$ называется ровным делителем числа $n$, если частное и остаток от деления $n$ на $m$ равны. По заданному натуральному числу $n$ найти количество его ровных делителей.
Входные данные
Натуральное число $n \space (1 ≤ n ≤ 10^{6})$.
Выходные данные
Выведите искомое количество ровных делителей числа $n$.
Тесты
| Входные данные | Выходные данные | 
| 5 | 1 | 
| 20 | 2 | 
| 200 | 6 | 
| 653 | 1 | 
| 5982 | 4 | 
Код программы
| 1 2 3 4 5 6 7 8 9 10 11 12 | #include <iostream> using namespace std; int main() {     unsigned n, q = 0;     cin >> n;     for (int m = 1; m <= n; m++)         if (n / m == n % m)             q += 1;     cout << q;     return 0; } | 
Решение
Для решения этой задачи сперва введем переменную q, в которой будем хранить количество ровных делителей числа $n$. Затем запустим цикл, который будет проверять каждое из чисел от $1$ до $n$ включительно, является ли оно ровным делителем. Если условие выполняется, то увеличиваем значение, хранящееся в q на единицу. После цикла выведем искомое на экран.
Ссылки
Условие задачи на e-olymp
Код решения на Ideone
