Задача
Натуральное число $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 13 14 15 16 17 18 19 |
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out); long n = in.nextLong(); long q = 0; for (int m = 1; m <= n; m++) if (n / m == n % m) q += 1; out.print(q); out.flush(); } } |
Решение
Для решения этой задачи сперва введем переменную q , в которой будем хранить количество ровных делителей числа $n$. Затем запустим цикл, который будет проверять каждое из чисел от $1$ до $n$ включительно, является ли оно ровным делителем. Если условие выполняется, то увеличиваем значение, хранящееся в q на единицу. После цикла выведем искомое на экран.
Ссылки
Условие задачи на e-olymp
Код решения на Ideone
Решение этой же задачи на C++