10110. Света, еще больше света
В
университете имеется очень длинный коридор, в котором расположены в ряд n лампочек. Возле каждой лампочки
находится переключатель, переводящий ее в одно из двух состояний: включено или
выключено. Изначально все лампочки выключены.
Студент
бегает по коридору вперед и назад, переключая лампочки. Когда студент движется
с начала коридора в конец i - ый раз,
то он меняет состояние только тех лампочек, номера которых делятся на i. При движении с конца коридора в
начало состояние лампочек не изменяется.
Необходимо определить, горит ли n - ая лампочка после того, как студент
совершит n пробежек туда - назад по
коридору.
Вход. Каждая
строка содержит количество лампочек в коридоре n (n < 232).
Последняя строка содержит n = 0 и не
обрабатывается.
Выход. Для
каждого входного значения n вывести
“yes”, если после n пробежек n - ая лампочка будет гореть, и “no”
иначе.
3
6241
8191
0
Пример выхода
no
yes
no
математика
После n пробежек n - ая лампочка
будет гореть, если n является полным
квадратом. Поэтому в задаче достаточно проверить это единственное условие.
Для каждого входного значения n
вычисляем в переменной m целую часть
его квадратного корня. После чего проверяем равенство m2 = n. Если оно
имеет место, то выводим “yes”, иначе “no”.
while(scanf("%lf",&n),n)
{
m = (int)sqrt(n);
if
(fabs(m*m - n) < 1e-7) printf("yes\n");
else
printf("no\n");
}