#include using namespace std; typedef long long int ll; #define mxn 1000000 bool mark[mxn+5]={false}; ll isprime[mxn+5],psize=0; void sieve() { mark[0]=true; mark[1]=true; ll i,j,k; for(i=2;i*i<=mxn;i++) { if(mark[i]==false) { for(j=i*i;j<=mxn;j+=i) mark[j]=true; } } isprime[psize++]=2; for(i=3;i<=mxn;i+=2) { if(mark[i]==false) isprime[psize++]=i; } } ll con(string s) { ll i,j,k,num=0; for(i=0;ians,cnt; void primefact(ll n) { ll i,j,k,c=0; ans.clear(); cnt.clear(); for(i=0;isprime[i]*isprime[i]<=n && i1) { ans.push_back(n); cnt.push_back(1); } for(i=ans.size()-1;i>=0;i--) { if(i==ans.size()-1) cout<