http://blog.csdn.net/tobewhatyouwanttobe/article/details/10285863
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
#define ll __int64
#define inf 0x3f3f3f3f
#define N 1001000
int p[N];
int main()
{
int t,g,l,i,j,k;
cin>>t;
while(t--)
{
int cnt=0;
cin>>g>>l;
if(l%g!=0){
printf("0\n");
continue;
}
l/=g;
for(i=2;i*i<=l;i++)
{
if(l%i==0)
{
p[cnt]=0;
while(l%i==0)
{
p[cnt]++;
l/=i;
}
cnt++;
}
}
if(l!=1) p[cnt++]=1;
ll ans=1;
for(i=0;i<cnt;i++)
ans*=(p[i]*6);
cout<<ans<<endl;
}
}
本文介绍了一个使用C++实现的质因数分解算法。该算法通过输入整数g和l,判断l是否能被g整除,若可以则进一步进行质因数分解,并计算特定条件下答案的个数。

2431

被折叠的 条评论
为什么被折叠?



