d111. 10110 - Light, more light 5/16/2025

解法一

🔹 計算因數

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;
}