解法一
🔹 計算因數
當 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;
}