閱讀243 返回首頁    go 阿裏雲 go 技術社區[雲棲]


九度 1493:公約數

題目描述:
給定兩個正整數a,b(1<=a,b<=100000000),計算他們公約數的個數。
如給定正整數8和16,他們的公約數有:1、2、4、8,所以輸出為4。

輸入:
輸入包含多組測試數據,每組測試數據一行,包含兩個整數a,b。

輸出:
對於每組測試數據,輸出為一個整數,表示a和b的公約數個數。

樣例輸入:
8 16
22 16
樣例輸出:
4
2
來源:
2013年王道論壇計算機考研機試全真模擬考試

 


 

#include<stdio.h>
int swap(int &a,int &b)
{
    int t;
    t=a;
    a=b;
    b=t;
}
int main()
{
    int i,n,m,sum,num1,num2;
    while(~scanf("%d %d",&n,&m))
    {
       if(n>m)
       swap(n,m);
       sum=0;
       for(i=1;i*i<=n;i++)//隻按裏麵比較小的數對半求 
       {
          if(n%i==0)
          {   
              num1=i;
              num2=n/i;
              if(num1!=num2)
              {
                  if(m%num1==0&&n%num1==0) sum++;     
                  if(m%num2==0&&n%num2==0) sum++;        
              }
              else
              {
                  if(m%num1==0&&n%num1==0) sum++;
              }
          }
       }
       printf("%d\n",sum);
    }
    return 0;
}

 

最後更新:2017-04-03 12:55:21

  上一篇:go linux下vi命令大全
  下一篇:go 2013藍橋杯【初賽試題】第39階台階