AC(但是还能优化)

凌艺樽  •  3个月前


#include<bits/stdc++.h>
#pragma GCC optimize(3)
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int N=1e6+10;
const int INF=0x3f3f3f3f;
int x,y,a[N],b[N],lena,lenb;
int ans;
int main()
{
	//IOS;
	cin>>x>>y;
	for(int i=x;i<=y;i+=x)
	{
		a[++lena]=i;
	}
	for(int i=1;i<=sqrt(y);++i)
	{
		if(y%i==0)
		{
			b[++lenb]=i;
			if(i!=sqrt(y))
			{
				b[++lenb]=y/i;
			}
		}
	}
	for(int i=1;i<=lena;++i)
	{
		for(int j=1;j<=lenb;++j)
		{
			if(__gcd(a[i],b[j])==x && a[i]/__gcd(a[i],b[j])*b[j]==y)
			{
				ans++;	
			}
			//cout<<a[i]<<" "<<b[j]<<endl;
		}
	}
	cout<<ans;
    return 0;
}


评论:

欢迎大佬指教O(n)级代码!


凌艺樽  •  3个月前