fork download
  1.  
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. int a[100009];
  5. long long prime[10009];
  6. void sieve()
  7. {
  8. long long i,j,p;
  9. a[1]=1;
  10. a[2]=0;
  11. for(i=4; i<=100009; i+=2)
  12. {
  13. a[i]=1;
  14. }
  15. prime[0]=2;
  16. p=1;
  17. for(i=3; i<=100009; i+=2)
  18. {
  19. if(a[i]==0)
  20. {
  21. prime[p++]=i;
  22. if(i*i<=100009)
  23. {
  24.  
  25. for(j=i*i; j<=100009; j+=i*2)
  26. {
  27. a[j]=1;
  28.  
  29. }
  30. }
  31. }
  32. }
  33.  
  34.  
  35. }
  36.  
  37. void sod(int n)
  38. {
  39. int x=1;
  40. int i;
  41. int mul=1;
  42. int m=n;
  43. for(i=0; prime[i]*prime[i]<=n; i++){
  44. int c=0,s=0,y=1;
  45. while(m%prime[i]==0){
  46. m/=prime[i];
  47. y*=prime[i];
  48. s+=y;
  49. c++;
  50. }
  51. // x*=(c+1);
  52. mul*=(s+1);
  53. }
  54. if(m>1){
  55. //x*=2;
  56. mul*=(m+1);
  57. }
  58. //cout<<mul-n<<endl;
  59. printf("%d\n", mul-n);
  60. }
  61.  
  62. int main()
  63. {
  64. int t, n;
  65. scanf("%d", &t);
  66. sieve();
  67. while(t--)
  68. {
  69. scanf("%d",&n);
  70. //sieve(n);
  71. sod(n);
  72. }
  73. return 0;
  74. }
  75.  
Success #stdin #stdout 0s 4420KB
stdin
4
23
45
67
78
stdout
1
33
1
90