当前位置: 代码迷 >> 综合 >> 思维漏洞 2021.10.6
  详细解决方案

思维漏洞 2021.10.6

热度:66   发布时间:2023-11-22 03:51:20.0

最大公约数和最小公倍数问题

正解: 

#include<iostream>
using namespace std;
int ans=0;
int d(int a,int b){if(a<b) swap(a,b);if(a%b==0) return b;else return d(b,a%b);
}
int x(int a,int b){
return (a*b/d(a,b));
}
int main(){int x0,y0; cin>>x0>>y0;for(int i=x0;i<=y0;i++){ int j=x0*y0/i;if(d(i,j)==x0&&x(i,j)==y0)ans++; }cout<<ans<<endl;return 0;
}	

本人在循环时,运用双指针错误的认为小的数的匹配数可能全在最右端,实则不然,应该用 

	int j=x0*y0/i;

来判断