首页 > 其他分享 >复旦附中T517829 GCD变换

复旦附中T517829 GCD变换

时间:2025-01-11 10:56:03浏览次数:1  
标签:附中 frac gcd int cin T517829 GCD

原题链接:T517829 GCD变换
这道题很唐氏,但是我不会(
cjy1024的指点下,这道题我会了。
结论:每一次让 \(x=x\cdot \gcd\{x,\frac{m}{x}\}\)。
我们为了让他们尽量次数少,所以我们希望乘上 \(\frac{m}{x}\),但如果 gcd 不满足的话,那么我们就乘上 \(\frac{m}{x}\) 的因数即可。
误解情况即为 \(x\neq m\) 并且 \(\gcd\{x,\frac{m}{x}\}=1\)。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,m,cnt;
signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m;cnt=0;
		while(n<m)
		{
			cnt++;
			if(__gcd(n,m/n)==1&&n!=m){cnt=-1;break;}
			n*=__gcd(n,m/n);
		}
		cout<<cnt<<endl;
	}
	return 0;
}

真不好评价如此简单的猜结论题。

标签:附中,frac,gcd,int,cin,T517829,GCD
From: https://www.cnblogs.com/IAKCTSC/p/18665346

相关文章

  • exGCD
    FileintGCD(inta,intb){ if(b==0)returna; returnGCD(b,a%b);}Question01[贝祖定理]根据ax+by=GCD(a,b)a,b均为正整数求x,y的整数值。Solution因为ax+by=GCD(a,b)并且GCD(a,b)=GCD(b,a%b)所以ax+by=GCD(b,a%b)由贝祖定理GCD(b,a%b)=bX+a%bY我们求出x,y和下......
  • [CF2043D] Problem about GCD 题解
    首先的一个观察是可以把\(G\)除掉,转化成\([\lceil\frac{l}{G}\rceil,\lfloor\frac{r}{G}\rfloor]\)中的两个互质数的差最大值。然后的性质非常神奇。令\(l'\gets\lceil\frac{l}{G}\rceil,r'\gets\lfloor\frac{r}{G}\rfloor\)。若\(r'-l'\)充分大,则一定有一组......
  • Problem about GCD
    思路首先容易发现题目相当于让你找到一个互质数对\((a,b)\)使得\(l\leqa\cdotG\leqb\cdotG\leqr\),求\(b-a\)最大化然后你发现区间缩小量并不大,简单的,问题可以视作在一个\(10^{18}\)的区间里找互质数对很快你发现,如果从左到右扫\(a\),从右到左扫......
  • P6786 「SWTR-6」GCDs & LCMs
    有意思的推式子题一开始看到这个式子是不知所措的,推理出来的结论倒是挺有意思的,还是第一次遇到这样推理的。一开始是打算直接枚举的,时间复杂度太高了,这个式子有什么意义呢?x+y+gcd(x,y)=lcm(x,y)x等于y时,显然不成立当y>x时,这时候就需要猜了。x+y+gcd(x,y)一定小于3y,而lcm又是y的......
  • 5个gcd(手搓)
    5种GCD方法//更相减损术intgcd(inta,intb){while(a!=b){if(a>b){a-=b;}else{b-=a;}}returna;}//递归版intgcd(inta,intb){returna==b?a:a>b?gcd(a-b,b):gcd(a,b-a);}//辗转相除法intgcd(inta,intb){whil......
  • CodeTON Round 9 D.Shohag Loves GCD
    思路(贪心+唯一分解定理)这个题其实只需要考虑一件事:记答案数组为\(a\),对于两个不同下标\(i\)和\(j\),当\(\gcd(i,j)=\min(i,j)\)时,我们只需要让\(a_{\max(i,j)}<a_{\min(i,j)}\)即可。证明:任意两个数\(x,y\),一定有\(\gcd(x,y)\leq\min(x,y)\)。第一种情况,如果......
  • 【模板】exgcd
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e6+10;intT,a,b,c,d,x,y,num;intexgcd(inta,intb,int&x,int&y){ if(b==0){ x=1;y=0;returna; } intd=exgcd(b,a%b,x,y); intz=x;x=y;y=z-(a/b)*y......
  • GCD、LCM、位运算
    #include<bits/stdc++.h>#include<numeric>usingnamespacestd;#defineendl'\n'#definelllonglongvoidsolve(){ llban=1; for(inti=2;i<=9;i++){ llw=lcm(i,i+1); ban=lcm(w,ban); } llx; cin>>x; llans=x/ban......
  • Abaqus 2024百度云下载:附中文安装包+教程
    正如大家所熟知的,Abaqus是一款有限元分析软件,能够高效的配合工程师完成创作。它可以高精度地实现包括金属、橡胶、高分子材料、复合材料、钢筋混凝土、可压缩超弹性泡沫材料以及土壤和岩石等地质材料的工程仿真计算。“Abaqus”不仅具有出色的仿真计算能力,由于其基于Python开......
  • GBase GCDW warehouse相关权限
    GCDW中,warehouse相关权限有三个,MODIFY_WAREHOUSE、OPERATE_WAREHOUSE、USAGE_WAREHOUSE;对应功能如下:MODIFY_WARHEOUSE:允许角色创建,删除,启动,挂起,修改warehouse属性的权限。OPERATE_WAREHOUSE:允许角色使用warehouse资源执行sql的权限,同时如果目标warehouse正处于suspend......