#include using namespace std; typedef long long ll; #define P pair #define FOR(I,A,B) for(ll I = ll(A); I < ll(B); ++I) #define FORR(I,A,B) for(ll I = ll((B)-1); I >= ll(A); --I) #define TO(x,t,f) ((x)?(t):(f)) #define SORT(x) (sort(x.begin(),x.end())) // 0 2 2 3 4 5 8 9 #define POSL(x,v) (lower_bound(x.begin(),x.end(),v)-x.begin()) //xi>=v x is sorted #define POSU(x,v) (upper_bound(x.begin(),x.end(),v)-x.begin()) //xi>v x is sorted #define NUM(x,v) (POSU(x,v)-POSL(x,v)) //x is sorted #define REV(x) (reverse(x.begin(),x.end())) //reverse ll gcd(ll a,ll b){if(a p; void dfs(ll m=1,ll ind=0,ll used=0){ ans++; if(used> N >> K >> M; ll j = N; for(ll i=2;i*i<=j;++i){ P x = {i,0}; while(N%i==0){ x.second+=K; N /= i; } if(x.second){ p.push_back(x); } } if(N!=1){ p.push_back({N,K}); } S = p.size(); if(S==0){ cout << 1 << endl; return 0; } dfs(); cout << ans << endl; }