社区讨论

蒟蒻求助

P1029[NOIP 2001 普及组] 最大公约数和最小公倍数问题参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lywjhidh
此快照首次捕获于
2024/07/22 13:21
2 年前
此快照最后确认于
2024/07/22 14:28
2 年前
查看原帖
第6和第10个点的TLE烦死了
C
#include<bits/stdc++.h>
using namespace std;
long long a,b,sum=0;
long long gcd(long long a,long long b){
	if(b==0) return a;
	return gcd(b,a%b);
}
int main(){
	scanf("%lld%lld",&a,&b);
	for(long long n=1; n<=a*b; n++){
		long long m=a*b/n;
		if(n*m!=a*b) continue;
		long long x=gcd(n,m),y=n*m/x;
		if(x==a&&y==b) sum++;
	}
	printf("%d\n",sum);
	return 0;
}
谁有更好的方法吗?

回复

5 条回复,欢迎继续交流。

正在加载回复...