抽象短除代码
  • 板块灌水区
  • 楼主jiayu114514
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/2/5 10:39
  • 上次更新2025/2/5 14:56:40
查看原帖
抽象短除代码
1278301
jiayu114514楼主2025/2/5 10:39

常规的短除代码

#include<bits/stdc++.h>//短除 
#define ll long long
using namespace std;
int main(){
	ll a,b,x,y,c,d=1;
	cin>>a>>b;
	x=a;
	y=b;
	for(int i=2;i<=a&&i<=b;i++){
		while(a%i==0&&b%i==0){
			a=a/i;
			b=b/i;
			d*=i;
		}
	}
	cout<<d<<" "<<x/d*y;
} 

本人灵机一动写的抽象短除代码

#include<bits/stdc++.h>//短除 (抽象 
#define ll long long
using namespace std;
ll gcd(int a,int b){
	if(a%b==0){
		return b;
	}
	else{
		return gcd(b,a%b);
	}
}
int main(){
	ll a,b,x,y;
	ll sum=1;
	ll c=2;
	cin>>a>>b;
	x=a;
	y=b;
	while(gcd(a,b)!=1){
		if(a%c==0&&b%c==0){
			a=a/c;
			b=b/c;
			sum*=c;
		}else{
			c++;
		}
	}
	cout<<sum<<" "<<x/sum*y;
	return 0;
}

多此一举(不是

2025/2/5 10:39
加载中...