a*b=gcd*lcm
for i:x~y 枚举每一个数 if (由两数乘积得出的另一个数存在 && gcd(i,另一个数)==n) ans++;代码:
#include<bits/stdc++.h> using namespace std; int g,l,ans; int gcd(int a,int b){ return b?gcd(b,a%b):a; } int main(){ cin>>g>>l; for(int i=g;i<=l;i++){ if(g*l%i==0&&gcd(g*l/i,i)==g) cout<<i<<" "<<g*l/i<<endl,ans++; } cout<<ans<<endl; return 0; }