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
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;
- }