Ссылка на оригинальную статью
Ссылка на e-olymp.com.
Задача
Определить все возможные значения произведения $i·j$, если целочисленные значения переменных $i$ и $j$ меняются соответственно $i$ от $a$ до $b$ и $j$ от $c$ до $d (1 ≤ a, b, c, d ≤ 10)$.
Входные данные
В одной строке заданы $4$ числа $a, b, c$ и $d$ ($a$ может быть больше $b$, $c$ может быть больше $d$).
Выходные данные
Вывести количество возможных вариантов произведения.
Тесты
№ | Входные данные | Выходные данные |
1 | 1 10 1 10 | 42 |
2 | 5 7 4 3 | 6 |
3 | 6 3 8 4 | 16 |
4 | 2 8 4 1 | 19 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
class Test { static function main() { var a = 1, b=10, c=1, d=10; var i, j, temp, p, count = 0; if (Math.max(a,b)==a) { temp = a; a = b; b = temp; } if (Math.max(c,d)==c) { temp = c; c = d; d = temp; } p = a*c; i = a; for (p in p...(b*d+1)) { temp = 0; for (i in i...(b+1)) { j=p/i; if ((j<=d)&&(j>=c)&&(p%i==0)) temp=1; } if (temp==1) count++; } trace(count); } } |
Решение
Для начала присваивается $a$ и $c$ минимальные значения из пары, а $b$ и $d$ — максимальные. Переменной $p$ присваивается произведение минимальных значений, а $i$ присваивается минимальное значение из первой пары. Далее в цикле проверяется делится ли число $p$, которое находится в диапазоне от произведения минимальных значений до произведения максимальных, на $i$ и $j$. Если условие выполняется, то временной переменной присваивается единица, а счетчик (результат) увеличивается на $1$.
- e-olymp 903. Первая или последняя? - 21.06.2017
- e-olymp 916. Интересное произведение - 21.06.2017
- e-olymp 2392. Интересная сумма - 20.06.2017
Вы делаете отступы двумя разными способами. Определитесь, пожалуйста.