URAL1355. Bald Spot Revisited

1355

其实就是求质因子的个数 这样肯定是最多的  

注意一下 除到最后不是1的情况 

 1 #include <iostream>

 2 #include<cstdio>

 3 #include<cstring>

 4 #include<algorithm>

 5 #include<stdlib.h>

 6 #include<cmath>

 7 using namespace std;

 8 #define N 32000

 9 int p[N],g,f[N];

10 void init()

11 {

12     int i,j;

13     f[0] = 1;

14     f[1] = 1;

15     for(i = 2; i < N ; i++)

16     if(!f[i])

17     for(j = i+i ; j < N ; j+=i)

18     f[j] = 1;

19     for(i = 2; i < N ;i++)

20     if(!f[i])

21     p[++g] = i;

22 }

23 int main()

24 {

25     int i,n,m,t;

26     init();

27     cin>>t;

28     while(t--)

29     {

30         cin>>n>>m;

31         if(m%n!=0)

32         {

33             printf("0\n");

34             continue;

35         }

36         int x = m/n,ans=1;

37         for(i = 1; i <= g ; i++)

38         {

39             while(x&&x%p[i]==0)

40             {

41                 x/=p[i];

42                 ans++;

43             }

44         }

45         if(x!=1) ans+=1;

46         cout<<ans<<endl;

47     }

48     return 0;

49 }
View Code

 

你可能感兴趣的:(vi)