#10MLE求助!
查看原帖
#10MLE求助!
228770
ZBAA_MKC楼主2021/3/20 21:48
#include <bits/stdc++.h>
using namespace std;

inline int read()
{
    int x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch >'9')
	{
        if(ch == '-')
		{
         	f = -1;
		}
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9')
	{
        x = (x << 1) + (x << 3) + (ch ^ 48);
        ch = getchar();
    }
    return x * f;
}

int gcd(int x, int y)
{
	if (x == y)
	{
		return x;
	}
	else
	{
		int mi = min(x, y);
		int ma = max(x, y);
		return gcd(mi, ma - mi);
	}
}

int main()
{
    int n, m;
    bool flg = false;
    m = read();
    n = read();
    if (n == m)
    {
    	flg = true;
	}
    n *= m;
    int end = sqrt(n);
    int ans = 0;
    for (int i = 1; i <= end; i++)
    {
    	if (gcd(i, n / i) == m && !(n % i))
    	{
    		ans++;
		}
	}
	int fans = (flg) ? 2 * ans - 1 : 2 * ans;
	cout << fans;
	return 0;
}
2021/3/20 21:48
加载中...