尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

江南程序设计竞赛联盟暑期多校训练·第六场(个人补题A,E)

江南程序设计竞赛联盟暑期多校训练·第六场(个人补题A,E) 题目A. Bob 的私房钱知识点分解质因数思路又是分解质因数(●—●)最后公式确实退不出来还是直接附上题解吧代码#include bits/stdc.h using namespace std; #define int long long #define endl \n int t; vectorint v; mapint, int vis; void fenjie(int x) { for (int i 2; i * i x; i) { if (x % i 0) { x / i; if (!vis[i]) v.push_back(i); vis[i]; i--; } } if (x 1) { if (!vis[x]) v.push_back(x); vis[x]; } return; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin t; while (t--) { v.clear(); vis.clear(); int n; cin n; fenjie(n 1); int ans 0; for (int i 1; i v.size() ; i) { ans (v[i - 1] - 1) * vis[v[i - 1]]; } cout ans endl; } return 0; }题目E. 小清新数论题知识点lcm线性筛快速幂关键依旧数论依旧卡死思路找到每个质数p对应最大的k使得p的k次方小于等于n最后累乘起来就可以该题线性筛的复杂度就够难点还是在分解质因数代码#include bits/stdc.h using namespace std; #define int long long #define endl \n const int N 3e510; int n, p; int check(int x) { for (int i 2; i sqrt(x); i) { if (x % i 0) return 0; } return 1; } int ksm(int x, int y) { int a x; int ANS 1; while (y) { if (y 1) ANS ANS * a; a a * a; y 1; } return ANS; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin n p; int ans 1; for (int i 2; i n; i) { if (check(i)) { int k 1; while (ksm(i, k) n) k; ans (ans * ksm(i, k - 1)) % p; } } cout ans endl; return 0; }
返回列表