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

相关推荐
我有一些感想……2 天前
浅谈 BSGS(Baby-Step Giant-Step 大步小步)算法
c++·算法·数论·离散对数·bsgs
盼满天繁星3 天前
浅记线性同余方程(组)
数学·数论·扩展欧几里得算法·中国剩余定理 crt·扩展中国剩余定理·bézout 定理·不定方程
让我们一起加油好吗8 天前
【数论】欧拉定理 && 扩展欧拉定理
c++·算法·数论·1024程序员节·欧拉定理·欧拉降幂·扩展欧拉定理
让我们一起加油好吗8 天前
【数论】费马小定理
c++·算法·数论·1024程序员节·费马小定理·逆元
花子の水晶植轮daisuki24 天前
数论上
数学·数论
闻缺陷则喜何志丹2 个月前
【数论】P10580 [蓝桥杯 2024 国 A] gcd 与 lcm|普及+
c++·数学·蓝桥杯·数论·洛谷
Darkwanderor5 个月前
数论——同余问题全家桶3 __int128和同余方程组
c++·算法·数论·中国剩余定理
所以遗憾是什么呢?6 个月前
扩展欧几里得算法【Exgcd】的内容与题目应用
数学·算法·数论·扩展欧几里得·exgcd
明月看潮生7 个月前
青少年编程与数学 02-016 Python数据结构与算法 17课题、数论算法
python·算法·青少年编程·数论·编程与数学
float_六七7 个月前
在处理欧拉函数时如何使用逆元
算法·数论·欧拉函数