void intToCharArr(int number) {
	char  charSum[10] = "";
	int index = 0;
	while (number > 0) {
		charSum[index] = (number % 10) + 48;
		number /= 10;
		index++;
	}
	charSum[index] = '\0';

	// reversing the charSum
	int temp;
	int charSumLen = length(charSum);
	for (int i = 0; i < charSumLen / 2; i++) {
		charSum[i] = charSum[i] + charSum[charSumLen - i - 1];
		charSum[charSumLen - i - 1] = charSum[i] - charSum[charSumLen - i - 1];
		charSum[i] = charSum[i] - charSum[charSumLen - i - 1];
		
	}

	if (length(charSum) == 1) {
		if ((charSum[0] == '3') || (charSum[0] == '6') || (charSum[0] == '9')) {

			printf("is divisible by 3.\n");
		}
		else
			printf("is not divisible by 3.\n");
	}
	else
		intToCharArr(sumOfDigits(charSum));
}
void  testCases(char * number, int length) {
	int sum = 0;
	if (digtsAreEqual(number))
		sum = (number[0] - 48) * length;
	else
		sum = sumOfDigits(number);
	intToCharArr(sum);
}
Пример #3
0
int main(void) {
    printf("gcd (-18, 48): %d\n", gcd(-18, 48));
    printf("gcd (18, -48): %d\n", gcd(18, -48));
    printf("gcd (-18, -48): %d\n", gcd(-18, -48));
    printf("gcd (0, -5): %d\n", gcd(0, -5));
    printf("gcd (0, 0): %d\n", gcd(0,0));
    int i = -18, j = -16, k = -534;
    printf("luhn(0): %d\n", luhn(0));
    printf("luhn(26): %d\n", luhn(26));
    printf("luhn(4): %d\n", luhn(4));
    printf("luhn(-158): %d\n", luhn(-158));
    printf("sum: %d\n", sumOfDigits(i));
    printf("sum: %d\n", sumOfDigits(j));
    printf("sum: %d\n", sumOfDigits(k));
    getStats();
    printf("gcd (5, 1): %d\n", gcd(5, 1));
    return 0;
}
Пример #4
0
int main(int argc, char const *argv[]) {

	int n, i, sod;

	while(scanf("%d", &n) && n != 0) {
		sod = sumOfDigits(n);
		i = 11;
		while(1) {
			if(sumOfDigits(i * n) == sod)
				break;
			i++;
		}

		printf("%d\n", i);
	}

	return 0;
}
Пример #5
0
int main(int argc, const char * argv[]) {
  int t, n;
  scanf("%d", &t);
  while (t--) {
    scanf("%d", &n);
    printf("%d ", sumOfDigits(n));
  }
  return 0;
}
int main(){

    long long n(0); scanf("%lld", &n);
    long long minTest = sqrt(n) - 9 * 10; if(minTest < 1){minTest = 1;}
    long long maxTest = sqrt(n);

    long long output(-1);
    for(long long test = minTest; test <= maxTest; test++){
        if(n % test == 0 && sumOfDigits(test) == n/test - test){output = test; break;}
    }

    printf("%lld\n", output);

    return 0;
}
Пример #7
0
/* Problem 4 */
int luhn(unsigned int y) {
    unsigned int checkDigit, checkSum = 0;
    /* storing one's digit */
    checkDigit = y % 10;
    do {/* removing right-most digit */
        y /= 10;
        /* doubling new right-most digit, and taking digit-sum of result */
        checkSum += sumOfDigits(2 *(y % 10));
        /* removing the digit you just added to sum */
        y /= 10;
        /* adding new right-most digit to sum */
        checkSum += y % 10;
    } while ((y / 10) > 0 );
    /* Verifying check digit is correct */
    return ((10 - checkSum % 10) == checkDigit);
}
Пример #8
0
/**
 * Returns non-zero if the account number could be valid according to the Luhn
 * algorithm (used for credit card numbers).
 */
int luhn(char *number) {
  int length = strlen(number);
  int lastIndex = length - 1;
  int sum = 0;
  for (int i = 0; i < length; i++); {
    int index = length - 1 - i;
    int num = charToNum(number[index]);
    if (i % 2 == 1) {
      sum += sumOfDigits(num * 2);
    } else {
      sum += num;
    }
  }
  int checksum = (sum * 9) % 10;
  return checksum = 0;
}
Пример #9
0
int calculateScore(std::string name, int age)
{
	int score = sumOfDigits(age);
	for (int i = 0; i < name.length(); i++)
	{
		if (name[i] % 2 == 0)
		{
			score += name[i];
		}
		else
		{
			score -= name[i];
		}
	}

	if (score < 0)
	{
		return 0;
	}

	return score;
}
Пример #10
0
void test_rec()
{
    printf("\tTesting Recursion Algorithms...\n\n");

    long num = 20;
    printf("factorial of %ld = %ld\n", num, fact(num));

    int len = 10000;
    int i = 0;

    int numbers[len];

    for (i = 0; i < len; ++i)
        numbers[i] = i + 1;

    printf("sum of array = %d\n", sumArray(numbers, len));
    printf("largest in array = %d\n", largest(numbers, len));
    printf("largest in array = %d\n", largest2(numbers, 0, len - 1));

    int big_num = 203041;
    printf("sum of digits of %d = %d\n", big_num, sumOfDigits(big_num));
}
Пример #11
0
int hash2(int key, int size)
{
	return sumOfDigits(key)%size;
}
Пример #12
0
int main()
{
    std::cout << "The answer is " << sumOfDigits(2,1000) << std::endl;
    return 0;
}