8.最大公约数和最小公倍数问题
題目描述?Description
輸入二個正整數x0,y0(2<=x0<100000,2<=y0<=1000000),求出滿足下列條件的P,Q的個數
條件:? 1.P,Q是正整數
2.要求P,Q以x0為最大公約數,以y0為最小公倍數.
試求:滿足條件的所有可能的兩個正整數的個數.
輸入描述?Input Description
二個正整數x0,y0
輸出描述?Output Description
滿足條件的所有可能的兩個正整數的個數
樣例輸入?Sample Input
3 60
樣例輸出?Sample Output
4
源代碼:
#include
using namespace std;
#include
#include
int x,y,sum=0;
int gys(int a,int b)
{
?????? if(a
?????? swap(a,b);
?????? int sh=a-b;
?????? while(sh!=0)
?????? {
????????????? a=b;
????????????? b=sh;
????????????? if(a
????????????? swap(a,b);
????????????? sh=a-b;
?????? }
?????? return b;
}
int gbs(int a,int b)
{
?????? return a*b/gys(a,b);
}
int main()
{
?????? cin>>x>>y;
?????? if(x>y)
?????? swap(x,y);
?????? if(y%x!=0)
?????? {
????????????? printf("0\n");
????????????? return 0;
?????? }
?????? else{
????????????? int v=x*y;
????????????? int s=sqrt(v);
????????????? for(int i=x;i<=s;i+=x)
????????????? {
???????????????????? if(gys(i,v/i)==x&&gbs(i,v/i)==y)
???????????????????? sum++;
????????????? }
?????? }
?????? printf("%d",sum*2);//再*2輸出就是了
?????? return 0;
}
轉載于:https://www.cnblogs.com/c1299401227/p/5370815.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的8.最大公约数和最小公倍数问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos2dx java 调用lua_
- 下一篇: 四种JSON解析工具--(json-li