ICode9

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

jerry99的序列 --binary search, math

2022-09-06 14:02:46  阅读:191  来源: 互联网

标签:prime binary search -- mid int factor tmp LOCAL


 

 


#include <bits/stdc++.h> using namespace std; using i64 = long long; const int N = 1e5 + 10; const int M = N - 10; int tot, vis[N], prime[N]; //#define LOCAL void sieve () { for (int i = 2; i <= M; ++i) { if (!vis[i]) prime[tot++] = i; for (int j = 0; j < tot; ++j) { if (1LL * prime[j] * i > M) break; vis[i * prime[j]] = 1; if (i % prime[j] == 0) break; } } } bool check(int mid, vector<pair<int, int>> &factor) { for (auto it : factor) { int prime = it.first; int cnt = it.second; i64 tmp = 1, res = 0; while (tmp <= mid) { tmp *= prime; res += mid / tmp; } #ifdef LOCAL cout << "res: " << res << "\n"; #endif if (res < cnt) return true; } return false; } int n, m; void solve() { if (n == 1) { cout << m << "\n"; return ; } int l = 1, r = m + 1; vector<pair<int, int>> factor; int tmp = n; for (int i = 0; i < tot && prime[i] * prime[i] <= tmp; ++i) { if (tmp % prime[i] == 0) { int cnt = 0; while (tmp % prime[i] == 0) { cnt++; tmp /= prime[i]; } factor.emplace_back(prime[i], cnt); } } if (tmp > 1) { factor.emplace_back(tmp, 1); } #ifdef LOCAL for (auto [x, y] : factor) { cout << x << ' ' << y << "\n"; } #endif while (l < r) { int mid = l + r >> 1; if (check(mid, factor)) { l = mid + 1; } else { r = mid; } } #ifdef LOCAL cout << "l: " << l << "\n"; #endif cout << m - l + 1 << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t; cin >> t; sieve(); for (; t--;) { cin >> n >> m; solve(); } return 0; }

 

标签:prime,binary,search,--,mid,int,factor,tmp,LOCAL
来源: https://www.cnblogs.com/zrzsblog/p/16661510.html

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

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

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

ICode9版权所有