玄关,为什么TLE
查看原帖
玄关,为什么TLE
815604
guoyf100619楼主2024/8/17 17:14
#include <bits/stdc++.h>
using namespace std;
set<int>s;

int main()
{
  int a, k = 2, sum = 0, cnt = 0;
  bool flag = false;
  cin >> a;
  if (a <= 3)
  {
    cout << a;
    return 0;
  }
  int n = a;
  while (n != 1 && k  < a)
  {
    if (n % k == 0)
    {
      n /= k;
      if (s.count(k) == true)
        flag = true;
      s.insert(k);
      cnt++;
      if (sum == 0)
      {
        sum = k;
      }
    }
    else
      k++;
  }
  if (s.empty())
    cout << a;
  else if (s.size() == 1)
    cout << a;
  else if (cnt % 2 == 1 && flag == false)
    cout << sum;
  else
    cout << 1;

  return 0;
}
2024/8/17 17:14
加载中...