解法一
🔹 計算因數
當 n
的因數個數是偶數時
最後一個燈會被開關偶數次,那麼他最後就會是暗著的
反之,最後一個燈會被開關奇數次,那麼他最後就會是亮著的
一個數的因數是兩兩成對的
例如 6 = 2*3
,找到了一個因數就會找到另一個
一個例外是 因數自己就是另一個因數,例如 9 = 3*3
也就是當一個數是 完全平方數時
這個數的因數會是奇數個
否則這個數的因數則會是偶數個
✅ 完整代碼
評分結果(參考) : AC (2ms, 336KB)
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
while(true){
cin >> n;
if(n == 0) break;
int sqrtN = (int)sqrt(n);
cout << ((n == sqrtN*sqrtN) ? "yes\n" : "no\n");
}
return 0;
}