fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define MAXN 10007
  4.  
  5. int a[MAXN];
  6.  
  7. void snt(){
  8. for(int i = 0; i < MAXN ; i++){
  9. a[i] = 1;
  10. }
  11. a[1] = a[0] =0;
  12. for (int i = 2; i < sqrt(MAXN); i++){
  13. if(a[i]){
  14. for(int j = i * i; j < MAXN; j += i ){
  15. a[j] = 0;
  16. }
  17. }
  18. }
  19. }
  20.  
  21. int sumnum(long long x){
  22. int s = 0;
  23. while ( x > 0 ){
  24. s += (int) x/10;
  25. x /= 10;
  26. }
  27. return s;
  28. }
  29.  
  30. int geck(long long n){
  31. long long m = n;
  32. int sum = 0;
  33. for (int i = 2; i * i < n; i++){
  34. if (a[i]){
  35. while (m % i == 0){
  36. sum += sumnum(i);
  37. m /= i;
  38. }
  39. }
  40. }
  41. if (m > 0){
  42. sum += sumnum(m);
  43. }
  44. }
  45. int main(){
  46. snt();
  47. int t;
  48. scanf("%d", &t);
  49. while (t--){
  50. long long n;
  51. scanf("%lld", &n);
  52. printf("%d\n", geck(n));
  53. }
  54. return 0;
  55. }
Success #stdin #stdout 0s 5300KB
stdin
2
378
730
stdout
-858993459
-1717986917