B3716 分解质因子 3

#include <bitset>
#include <vector>
#include <iostream>
#include <algorithm>

const int maxn = 100000008;

std::vector<int> prm, pre;  // pre is the min-factor array.
bool np[maxn];

void getPrime(const int N = 100000000) {//线性筛!
  pre.resize(N + 1);
  for (int i = 2; i <= N; ++i) {
    if (!np[i]) {
      prm.push_back(i); pre[i] = i;
    }
    for (auto p : prm) if (i * p <= N) {
      int k = i * p;
      np[k] = true;
      pre[k] = p;
      if (i % p == 0) break;
    } else break;
  }
}

int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  getPrime();
  int T, n;
  for (std::cin >> T; T; --T) {
    std::cin >> n;
    int ans = 0;
    while (n != 1) {
      ans ^= pre[n];
      n /= pre[n];
    }
    std::cout << ans << '\n';
  }
}

okk

相关推荐
听听听搁浅3 个月前
数论知识(取模运算)
c++·数论
EQUINOX13 个月前
调和级数枚举,LeetCode 1819. 序列中不同最大公约数的数目
算法·数论
blind58833 个月前
博弈论(Nim 游戏)
c++·数论·博弈论·nim游戏
RoysterCDD6 个月前
【C++算法模板】数论:欧拉筛,线性查找质数的算法
数据结构·c++·算法·蓝桥杯·数论·欧拉筛·质数筛
麦田里的小白羊6 个月前
质因数个数(acwing,蓝桥杯)
数据结构·c++·算法·蓝桥杯·数论
麦田里的小白羊6 个月前
等差数列(蓝桥杯,acwing每日一题)
数据结构·c++·算法·职场和发展·蓝桥杯·数论
邪神与厨二病6 个月前
Codeforces Round 932 (Div. 2)(A,B,C,D)
数据结构·算法·动态规划·数论··容斥原理
空白菌8 个月前
数论笔记-原根
数论
一只大黄猫8 个月前
【算法】约数个数(数论)
数学·算法·数论·约数
防御塔策略8 个月前
第十三届蓝桥杯省赛C/C++,JAVA,Python研究生组题 质因数个数
算法·职场和发展·蓝桥杯·数论