int main() { int i,j,c,len,num,temp,t,res,count; scanf("%d",&num); if(num==1) printf("0\n"); else{ count=0; while(1){ count++; temp=digitSum(num); if(temp==1){ res=1; break; } if(arr[temp]){ res=0; break; } else{ arr[temp]=true; num=temp; } } } if(res) printf("%d\n",count ); else printf("-1\n"); return 0; }
int main(){ int a[1002],k,n; int i; freopen("sequence.in","r",stdin); freopen("sequence.out","w",stdout); scanf("%d%d%d",&a[1],&k,&n); for(i=1;i<=n;i++){ int tmp=a[i]; while(tmp++){ if(digitSum(tmp)==digitSum(k*a[i])){ break; } } a[i+1]=tmp; } printf("%d\n",a[n]); //system("pause"); return 0; }
int main(void) { std::vector<char> num; num.push_back((char)1); for (int i = 0; i < 1000; i++) mulBy2(num); std::cout << digitSum(num) << std::endl; return 0; }
int main() { int max = 0; for(int i = 1; i < 100; i++) { BigUnsigned base = i; for(int exponent = 1; exponent < 100; exponent++) { base *= exponent; int digits = digitSum(bigIntegerToString(base)); if( digits > max) max = digits; } } std::cout<< max <<std::endl; return 0; }
int main(void) { init(); for(uint64_t expn = 2; expn <= MAX_EXPN; ++expn) { for(uint64_t base = 2, power; base <= MIN(MAX_BASE, (uint64_t)pow(UINT64_MAX, 1./(double)expn)); ++base) { power = pow(base, expn); if(digitSum(power) == base) { addPowerSum(power); } } } qsort(powerSums, powerSums_c, sizeof(uint64_t), (__compar_fn_t)compare_uint64_t_p); printf("%"PRIu64"\n", powerSums[29]); }
int main(){ int t, i, n, j, s, f; scanf("%d", &t); for(i=0; i<t; i++){ scanf("%d", &n); if(n<=2)n=3; for(j=n+1; ; j++){ if(!isPrime(j)){ s = digitSum(j); f = factors(j); if(s == f){ printf("%d\n", j); break; } } } } return 0; }