码迷,mamicode.com
首页 > 其他好文 > 详细

gcd,lcm HDU4497

时间:2015-08-31 21:15:58      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 
 6 int arr[100000];
 7 
 8 using namespace std;
 9 
10 int main()
11 {
12     int n;
13     cin>>n;
14     while(n--)
15     {
16         long long a,b;
17         long long ans=0;
18         int num=0;
19         memset(arr,0,sizeof(arr));
20         scanf("%I64d%I64d",&a,&b);
21         if(b%a==0)
22         {
23             ans=1;
24             int c=b/a;
25             double s=sqrt((double)c);
26             for(int i=2;i<=s;i++)
27             {
28                 if(c%i==0)
29                     num++;
30                 while(c%i==0)
31                 {
32                     arr[num]++;
33                     c=c/i;
34                 }
35             }
36             if(c!=1)
37             {
38                 num++;
39                 arr[num]++;
40             }
41             for(int i=1;i<=num;i++)
42             {
43                 ans=ans*(3*2+6*(arr[i]-1));
44             }
45         }
46         cout<<ans<<endl;
47     }
48     return 0;
49 }
View Code

 

gcd,lcm HDU4497

标签:

原文地址:http://www.cnblogs.com/wsruning/p/4773946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!