1. /*#include<bits/stdc++.h>
  2. using namespace std;
  3. int isprime(int j)
  4. {
  5. int k;
  6. int count2=0;
  7. for(k=2;k<=sqrt(j);k++)
  8. {
  9. if(j%k==0)
  10. return 1;
  11. break;
  12. }
  13. if(count2==0)
  14. return 0;
  15. }
  16. int main()
  17. {
  18. int i,j,t,n;
  19. cin>>t;
  20. for(i=0;i<t;i++)
  21. {
  22. int count=0;
  23. cin>>n;
  24. if(n<4)
  25. {
  26. cout<<0<<endl;
  27. }
  28. else
  29. {
  30. for(j=4;j<=sqrt(n);j++)
  31. {
  32. if(n%j==0 && isprime(j)==1)
  33. count++;
  34.  
  35. }
  36. cout<<count<<endl;
  37. }
  38. }
  39. }*/
  40. /*
  41. // Sample code to perform I/O:
  42. #include <iostream>
  43. using namespace std;
  44. int main() {
  45. int num;
  46. cin >> num; // Reading input from STDIN
  47. cout << "Input number is " << num << endl; // Writing output to STDOUT
  48. }
  49. // Warning: Printing unwanted or ill-formatted data to output will cause the test cases to fail
  50. */
  51. #include<bits/stdc++.h>
  52. using namespace std;
  53. #define ll long long
  54. int main()
  55. {
  56. int N = 1000000;
  57. int prime[1000001] = {0}; // prime sieve...
  58. int v[1000001]; // array to store all the prime values...
  59. prime[2] = 1;
  60. for(ll i = 3; i <= N; i = i+2)
  61. prime[i] = 1;
  62. v[0] = 2;
  63. ll int k = 1;
  64. for(ll int i = 3; i <= N; i += 2)
  65. {
  66. if(prime[i])
  67. {
  68. v[k] = i;
  69. k++;
  70. for(ll int j = i*i; j <= N; j += 2 * i)
  71. prime[j] = 0;
  72. }
  73. }
  74. int t;
  75. cin >> t;
  76. while(t--)
  77. {
  78. ll int n;
  79. cin >> n;
  80. ll int i = 0;
  81. ll int p1 = v[0];
  82. ll int ans = 1 , d = 0;
  83. while(p1 * p1 <= n && i < k)
  84. {
  85. ll int c = 0;
  86. while(n % p1 == 0)
  87. {
  88. n = n/p1;
  89. c++;
  90. }
  91. if(c > 0)
  92. d++;
  93. ans*=(c+1);
  94. i++;
  95. p1 = v[i];
  96. }
  97. if(n != 1)
  98. {
  99. ans*=2;
  100. ans-=1;
  101. }
  102. cout << ans-d << endl;
  103. }
  104. return 0;
  105. }
Language: C++