问题标题: 酷町堂:3288 找错 || 看一下测试点7

0
0
已解决
黄依成
黄依成
中级天翼
中级天翼
#include<iostream>
#include<cmath>
using namespace std;
int f(int x,int y){//最大公因数 
	int r;
	while(x%y!=0){
		r=x%y;x=y;y=r;
	}
	return y;
}
int f1(int x1,int y1){//最小公倍数 
	int r1,a1=x1,b1=y1;
	while(x1%y1!=0){
		r1=x1%y1;x1=y1;y1=r1;
	}
	return a1*b1/y1;
}
int main(){
	long long a,b,c,cnt=0;
	cin>>a>>b;
	c=a*b;
	for(int i=2;i<=sqrt(c);i++){
		if(c%i==0){
			if(f(i,c/i)==a&&f1(i,c/i)==b){
				cnt++;
			}
		}
	}
	cout<<cnt;
	return 0;
}

样例没过,提交20分

黄依成在2020-08-10 21:44:07追加了内容

一顿操作后,90分

#include<iostream>
#include<cmath>
using namespace std;
int f(int x,int y){//最大公因数 
	int r;
	while(x%y!=0){
		r=x%y;x=y;y=r;
	}
	return y;
}
int f1(int x1,int y1){//最小公倍数 
	int r1,a1=x1,b1=y1;
	while(x1%y1!=0){
		r1=x1%y1;x1=y1;y1=r1;
	}
	return a1*b1/y1;
}
int main(){
	long long a,b,c,cnt=0;
	cin>>a>>b;
	c=a*b;
	if(a==b){
		cout<<1;return 0;
	}
	for(int i=2;i<=sqrt(c);i++){
		if(c%i==0){
			if(f(i,c/i)==a&&f1(i,c/i)==b){
				cnt++;
			}
		}
	}
	cout<<cnt*2;
	return 0;
}

 

黄依成在2020-08-11 20:15:53追加了内容

顶!

黄依成在2020-08-11 20:23:02追加了内容

怎么换悬赏金额啊,感觉40币币换10豆豆有点亏


0
已采纳
黄子扬
黄子扬
初级天翼
初级天翼

欧几里得求最大公约数

最小公倍数=两数积除以最大公约数

1
黄依成
黄依成
中级天翼
中级天翼

顶!

黄依成在2020-08-11 08:12:14追加了内容

顶!

黄依成在2020-08-11 11:04:28追加了内容

顶!

0
0
徐子宸
徐子宸
中级天翼
中级天翼

我TLE的代码:

  • #include<iostream>
  • #include<cmath>
  • using namespace std;
  • int f(int x,int y){//最大公因数
  • int r;
  • while(x%y!=0){
  • r=x%y;x=y;y=r;
  • }
  • return y;
  • }
  • int f1(int x1,int y1){//最小公倍数
  • int r1,a1=x1,b1=y1;
  • while(x1%y1!=0){
  • r1=x1%y1;x1=y1;y1=r1;
  • }
  • return a1*b1/y1;
  • }
  • int main(){
  • long long a,b,cnt=0;
  • cin>>a>>b;
  • if(a==b){
  • cout<<1;return 0;
  • }
  • for(int i=a;i<=b;i++){
  • for(int j=a;j<=b;j++){
  • if(f(i,j)==a&&f1(i,j)==b){
  • cnt++;
  • }
  • }
  • }
  • cout<<cnt;
  • return 0;
  • }
我要回答