[白俊/c+]15736号:青気白気


質問リンク-https://www.acmicpc.net/problem/15736

🌱 質問する



🌱 に答える

  • 最初は思い出せず、質問通りに回りました.
  • は最初は青だったので、白いものは奇数でひっくり返ったので、1からNまで数えて数の中に奇数があります.
  • //약수의 갯수 리턴하는 함수
    int func(int n)
    {
    
        int cnt = 0;
        for (int i = 1; i <= n; i++)
        {
            if (n % i == 0)
                cnt++;
        }
        return cnt;
        }
        
  • は、このような約数を返す関数を記述し、主文で1からNに移動し、func(i)値が奇数であるものを計算する.
  • はもちろんタイムアウトしました.時間制限は1秒ですが1億回回ると1秒入力値Nの範囲は21億です
  • の約数が奇数であることは、平方数の場合にのみ可能な結果を意味する.
  • だから1からNまでの数の中で、正しい答えを出すのは平方数の数だけだ.
  • 🌱 コード#コード#

    // 15736번: 청기 백기
    #include <iostream>
    using namespace std;
    int n;
    
        int main()
        {
            ios::sync_with_stdio(false);
            cin.tie(NULL);
            int answer = 0;
            cin >> n;
    
            // 1부터 n까지 수 중에서 제곱수의 갯수 카운트
            for (int i = 1; i * i <= n; i++)
            {
                answer++;
            }
    
            cout << answer << "\n";
        }
        //약수 갯수가 홀수인것만 최종적으로 백색임.
        //약수 갯수 홀수라는건 제곱수 라는뜻.