存质因子在va中
(存储下来质因子是递增的!!!cnt为有多少质因子,如va[cnt]就是最大的质因子)
int va[N],cnt = 0;
int check(int x)//最大公共质因数
{
for(int i=2;i<=x/i;i++)
{
cnt++;
while(1)
{
if(x%i==0)
{
va[cnt] = i;
x /= i;
}
else break;
}
}
if(x!=1) va[++cnt] = x;
}
存质因子指数在va中
const int N = 1e7+5;
int va[N],cnt = 0;//va存的是分解质因子后每个质因子的指数
//cnt是有多少个质因子
void init(int x)
{
for(int i = 2;i<=x/i;i++)
{
if(x%i == 0)
{
cnt++;
while(1)
{
va[cnt]++;
x /= i;
if(x%i !=0) break;
}
}
}
if(x != 1) va[++cnt] = 1;
}
signed main()
{
IOS;
int n;
cin>>n;
init(n);