Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
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));
}
Beispiel #4
0
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;
}
Beispiel #6
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;
}
Beispiel #7
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;
}
Beispiel #8
0
int digit_sum(int num){
  if(num<10)
 return num;
  return num%10+digit_sum(num/10);
}
Beispiel #9
0
int main(){
    int n, m;
    scanf("%d %d", &n, &m);
    printf("%d\n", digit_sum(n) * digit_sum(m));
    return 0;
}
Beispiel #10
0
int digit_sum(int n){
    if (n) return n % 10 + digit_sum(n / 10);
    return 0;
}