1. #include<stdio.h>
  2. #define ll long long
  3. //#include<vector>
  4. int main()
  5. {
  6. int N=1000000;
  7. int p[1000001]={0};
  8. int v[1000001];
  9. p[2]=1;
  10. for(ll int i=3;i<=N;i+=2)
  11. p[i]=1;
  12. v[0]=2;
  13. ll int k=1;
  14. for(ll int i=3;i<=N;i+=2)
  15. {
  16. if(p[i])
  17. {
  18. v[k]=i;
  19. k++;
  20. for(ll int j=i*i;j<=N;j+=2*i)
  21. p[j]=0;
  22. }
  23. }
  24. //for(int i=0;i<v.size();i++)
  25. //cout<<v[i]<<" ";
  26. int t;
  27. scanf("%d",&t);
  28. while(t--)
  29. {
  30. ll int n;
  31. scanf("%lld",&n);
  32. ll int i=0;
  33. ll int p1=v[0];
  34. ll int ans=1,d=0;
  35. while(p1*p1<=n&&i<k)
  36. {
  37. ll int c=0;
  38. while(n%p1==0)
  39. {
  40. n/=p1;
  41. c++;
  42. }
  43. if(c>0)
  44. d++;
  45. ans*=(c+1);
  46. i++;
  47. p1=v[i];
  48. }
  49. if(n!=1)
  50. {
  51. ans*=2;
  52. ans-=1;
  53. }
  54. printf("%lld\n",ans-d);
  55. }
  56. return 0;
  57. }
Language: C