讨论 / 非穷举
a10039901 2017-10-25 06:46:52
点我顶贴 收藏 删除

测试点1 Accepted / 1ms / 12508kB

测试点2 Accepted / 1ms / 12508kB

测试点3 Accepted / 1ms / 12508kB

测试点4 Accepted / 0ms / 12508kB

测试点5 Accepted / 1ms / 12508kB

#include<iostream>

using namespace std;

int gcd(int a,int b)

{

if(b==0)return a;

return gcd(b,a%b);

}

int main()

{

int min,max,a,b,n=0;

cin>>a>>b;

if(a>b)

{

max=a;

min=b;

}

else

{

max=b;

min=a;

}

int bei;

if(max%min!=0)//最大公倍数肯定跟最小公因数有倍数关系

{

cout<<'0';

return 0;

}

bei=max/min;

for(int i=1;i*i<=bei;i++)//倍数因式分解 互质和1成立

if(bei%i==0)

if(gcd(bei/i,i)==1)

n++;

cout<<n*2;

}

#1 a10039901@2017-10-25 06:48:07
回复 删除
说错 最大公因数和最小公倍数 根据公因数跟公倍数的关系
查看更多回复
提交回复