- 2024-08-11Pollard-Rho的一些应用
P4718https://www.luogu.com.cn/problem/P4718要求找最大的素因子,考虑可能出现在因子的因子中,所以需要递归i64max_prime(i64n){if(isp(n)){returnn;}i64mx{std::numeric_limits<i64>::min()};while(n!=1){autodiv{findDiv(n)};mx
- 2024-05-16D. Deleting Divisors
https://codeforces.com/contest/1537/problem/D题意:给定数n,alice和bob博弈,alice先手。每次操作可以减去当前n的一个因子,并且该因子不能为n和1。问谁必胜。思路:策略分析。基础分析:如果n是奇数,那么没有偶数因子。如果n是偶数,可能有偶数因子和奇数因子,如果只有偶数因子,n是2的整数
- 2024-03-04CSES1081:Common Divisors
传送门题意:找到两个\(gcd\)最大的数。\(n\le2e5,a_i\le1e6\)。一种方法是枚举\(i:1\simn\),\(O(\sqrta_i)\)把\(a_i\)因数的出现次数加一。然后\(i:1000000\sim1\),如果\(cnt[i]>1\),输出\(i\)结束。复杂度\(O(n\sqrtV)\),\(2e8\),可惜CSES的机子跑不过。枚
- 2024-02-20The number of divisors(约数) about Humble Numbers
Anumberwhoseonlyprimefactorsare2,3,5or7iscalledahumblenumber.Thesequence1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27,...showsthefirst20humblenumbers.Nowgivenahumblenumber,pleasewriteaprogramtocal
- 2023-12-31B. Two Divisors
原题链接题记1.题目漏了个说明条件,应该说明所给数据一定能找到对应的x例如a=2,b=6就找不到相对应的x2.如果一定存在对应的x,那么b一定是x除以x最小的因子,a一定是x除以x第二小的因子如果第二小的因子不是由第一小的因子的平方得到的,那么\(lcm(a,b)\)一定能找到x否则再乘上第
- 2023-12-31CF1916B Two Divisors
思路看到题目要求求一个数\(x\),满足它的最大的两个因数分别是\(a\)和\(b\),并且规定一个数本身不是他的因数。首先\(x\)需要是\(a\)和\(b\)的倍数,所以想到最小公倍数,如果不考虑最小公倍数等于\(b\),最小公倍数就一定是答案,因为最小公倍数是最小的满足是\(a\)和\(b\)
- 2023-12-21[LeetCode] 1362. Closest Divisors 最接近的因数
Givenaninteger num,findtheclosesttwointegersinabsolutedifferencewhoseproductequals num+1 or num+2.Returnthetwointegersinanyorder.Example1:Input:num=8Output:[3,3]Explanation:Fornum+1=9,theclosestdivisorsare3&
- 2023-12-13CF301D Yaroslav and Divisors
因为是排列,所以数对总数是调和级数的\(O(n\logn)\),可以暴力枚举。容斥,区间左右端点均在\([l,r]\)中的数对数量等于左右端点均在\([1,r]\)中的数对数量减去左右端点均在\([1,l-1]\)中的数对数量,再减去左端点在\([1,l-1]\)中且右端点在\([l,r]\)中的数对数量。发现前
- 2023-10-09题解 - CF1972E - Divisors and Table
这题正解是虚树,本解法卡常,仅适合不会虚树的。(例如本人)注意:下文中根节点深度定义为1.第一步:转化问题我们把$g(x,y,z)$拆开,考虑每个质数是哪些点的因子。包含这个质数的点构成一个点集,我们只需求这个点集S的$\sum\limits_{x,y,z\inS}f(x,y,z)$。第二步:对
- 2023-08-17约数总结
试除法求约数方法1-试除所有数算法原理假设p是x的一个约数,那么x/p一定也是它的约数,所以只需枚举2到$\sqrt[2]{n}$的约数,并且可以直接通过运算获得$\sqrt[2]{n}$之后对应的那个约数时间复杂度$O(\sqrt{n})$代码实现#include<iostream>#include<algorithm>#include<
- 2023-08-17约数总结
试除法求约数方法1-试除所有数算法原理假设p是x的一个约数,那么x/p一定也是它的约数,所以只需枚举2到$\sqrt[2]{n}$的约数,并且可以直接通过运算获得$\sqrt[2]{n}$之后对应的那个约数时间复杂度$O(\sqrt{n})$代码实现#include<iostream>#include<algorithm>#include<
- 2023-08-09约数
试除法求约数方法1-试除所有数算法原理假设p是x的一个约数,那么x/p一定也是它的约数,所以只需枚举2到$\sqrt[2]{n}$的约数,并且可以直接通过运算获得$\sqrt[2]{n}$之后对应的那个约数时间复杂度$O(\sqrt{n})$代码实现#include<iostream>#include<algorithm>#include<
- 2023-08-08B. Longest Divisors Interval
link需要思考一下如果这个题能做,那么肯定有一种比较可行的做法。如果\([l,r]\)是可行的,那么就意味着\([1,r-l+1]\)是可行的这是显然的,显然后者的每一个数在前者中必然有对应的倍数,所以等效。这样从1开始找就行了。#include<cstdio>#include<iostream>#include<cstring>#i
- 2023-08-03Codeforces 1855B:Longest Divisors Interval 最长的连续约数区间
1855B.LongestDivisorsIntervalDescription:对于一个整数\(n\)\((1\leqn\leq10^{18})\),找到一段最长的区间\([l,r]\),使得区间内所有数均为\(n\)的约数。Analysis:如果\(n\)是一个奇数(非\(2\)的倍数),由于\(odd=odd\timesodd\),则不可能有连续的两个整数均为
- 2023-07-31Longest Divisors Interval
Smiling&Weeping----总有一个人,一直住在心底,却消失在生活里。Givenapositiveintegern,findthemaximumsizeofaninterval[l,
- 2023-07-30CF1855B Longest Divisors Interval 题解
原题链接:https://codeforces.com/contest/1855/problem/B题意:给定一个正整数n,找到满足该条件的区间[l,r]的长度的最大值:对于任意l<=i<=r,n均为i的倍数(多组数据)。思路:如果n是奇数,答案显然是1,因为任意两个连续的正整数一定会有一个2的倍数。将这一结论进行推广:
- 2023-07-30CF1855B Longest Divisors Interval 题解
题意:给定一个数\(n\),求一个连续区间\([l,r]\)使得\(n\)是区间内每个数的倍数,最大化这个区间的长度(多组数据)。思路:逆向思考一波,(如果一个数\(x\)不是\(n\)的因数,那么\(x\)的倍数不能在区间内。举个例子,比如$n$是13,3不是13的因数,\(3,6,9,12\)也就不可能出现
- 2023-04-11Divisors UVA - 294
求区间[L,R]的整数中哪一个的正约数最多。 一个数因数分解后,它的约数Cnt=(a[j]+1)的乘积,j是每个因数的个数 #include<iostream>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;constintM=1e5+30;#defineintlonglo
- 2022-12-31Even Subarrays(数论问题)
题目链接题目描述:Youaregivenanintegerarray\(a_1,a_2,…,a_n(1≤a_i≤n).\)FindthenumberofsubarraysofawhoseXORhasanevennumberofdivisors.In
- 2022-12-11CF261E 翻
[[DP]][[twopointers]]linkAhint:Thereisnear3000000numberswithmaximalprimedivisor<=100.Accordingtothehint,wecanlistallthepassiblenumber