ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CF 1366D. Two Divisors(线性筛)

2021-11-04 22:02:56  阅读:156  来源: 互联网

标签:pr const int CF Two lpf include Divisors define


在这里插入图片描述

#include <cstdio>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cassert>

#include <algorithm>
#include <random>
#include <chrono>
#include <iostream>
#include <functional>
#include <bitset>
#include <vector>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <unordered_map>

#define PII pair<int, int>
#define vec vector
#define str string
#define fi first
#define se second
#define pb push_back
#define all(a) a.begin(), a.end()
using namespace std;

typedef long long ll;
typedef unsigned long long ull;

const int mod = 1e9 + 7;
const int N = 1e7 + 10;
const int inf = 0x3f3f3f3f;
const ll  INF = 1e18;
const double eps = 1e-8;

int T;

int lpf[N], pr[N], cnt;
PII ans[(int) 5e5 + 10];

int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  for (int i = 2; i < N; i++) {
    if (!lpf[i]) pr[++cnt] = i, lpf[i] = i;
    for (int j = 1; j <= cnt && 1LL * i * pr[j] < (ll) N; j++) {
      lpf[pr[j] * i] = pr[j];
      if (i % pr[j] == 0) break;
    }
  }
  int n; cin >> n;
  for (int i = 1; i <= n; i++) {
    int x, t, tt = 1; cin >> x, t = x;
    while (t != 1) {
      int d = lpf[t]; tt *= d;
      while (t % d == 0) t /= d;
    }
    if (tt != lpf[x]) {
      ans[i] = {lpf[x], tt / lpf[x]};
    } else ans[i] = {-1, -1};
  }
  for (int i = 1; i <= n; i++) cout << ans[i].fi << ' ';
  cout << '\n';
  for (int i = 1; i <= n; i++) cout << ans[i].se << ' ';
  cout << '\n';
  return 0;
}

标签:pr,const,int,CF,Two,lpf,include,Divisors,define
来源: https://blog.csdn.net/qq_41743740/article/details/121152532

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有