AtCoder Beginner Contest 169 D.Div Game
题目链接
数论题,既然题目要找的能被 整除的数都是素数的幂次方,那么我们就对每一个素数及其幂次方,找所有能被 整除的即可,但是对一个数而言,它所有的因子都出现在 内,所以光这样判断还不够,最后还要特判一下 是否大于 1,AC代码如下:
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
main(){
ll n,ans=0,i,j;
cin>>n;
for(i=2;i<=sqrt(n);i++){
j=i;
while(n%j==0) ans++,n/=j,j*=i;
while(n%i==0) n/=i;
}
cout<<ans+(n>1);
}