inline int prime_factor_sum(int n) { int sum = 0; int c = n; while(c%2==0) { sum += 2; c /= 2; } int i = 3; int tmp = sqrt((long double)c)+1; while(i<=tmp) { if(c%i==0) { if(i<10) sum += i; else sum += digit_sum(i); c /= i; tmp = sqrt((long double)c)+1; } else i += 2; } if(2==n || c==n) return 0; // a prime number is not considered as a Smith number if(c>1) sum += digit_sum(c); return sum; }
int main(void) { std::pair<mpz_class, mpz_class> p = repeated_convergent(100 - 1, *term); cout << "Sum of digits in 100th fraction for e: " << digit_sum(p.first) << '\n'; cout << p.first << " / " << p.second << endl; return 0; }
main() { int x; printf("Digit sum - another exciting program\n"); printf(" from Furball Enterprises, Inc.\n\n"); x = get_integer(); printf("Sum of the digits of %d is %d.\n", x, digit_sum(x)); }
int main(int argc, char *argv[]) { const unsigned POWER = 1000; huge product(1); unsigned p; for(p = 0; p < POWER; p++) { product = product * 2; } std::cout << "Result is: " << digit_sum(product) << std::endl; return 0; }
__int64 solve_119() { std::list<ui64_t> xlist; for(int base = 2; base < 500; ++base) { // 乘方的方式构造数,power必然是完全N次方数,需要检验的是它的DigitSum是否和它N次方的基数相等. for(ui64_t power = base * base; !mul_overflow(power, base); power *= base) if(digit_sum(power) == base) // 按顺序插入. xlist.insert(std::lower_bound(xlist.begin(), xlist.end(), power), power); } int i = 0; std::list<ui64_t>::const_iterator ite = xlist.begin(); for(; ite != xlist.end() && ++i < 30; ++ite) ; return ite != xlist.end() ? *ite : 0; }
int main() { int n, s, s1, s2; int d; scanf("%d", &d); while(d-->0) { scanf("%d", &n); for(s=n+1;; s++) { s1 = prime_factor_sum(s); s2 = digit_sum(s); if(s1==s2) break; } printf("%d\n", s); } return 0; }
int main (int argc, char *argv[]) { int sum= 0, num; FILE *fin; fin = fopen (argv[1], "r"); /*opens the file with the name argv[1] */ while (fscanf(fin, "%d", &num) !=EOF){ /* read integers from fin and store in the number */ sum = digit_sum(num); printf ("The sum of digits of number is %d.\n", sum); } fclose (fin); /*closes the file */ return 0; }
int digit_sum(int num){ if(num<10) return num; return num%10+digit_sum(num/10); }
int main(){ int n, m; scanf("%d %d", &n, &m); printf("%d\n", digit_sum(n) * digit_sum(m)); return 0; }
int digit_sum(int n){ if (n) return n % 10 + digit_sum(n / 10); return 0; }