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); }
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; }
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; }
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; }
/* 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); }
/** * 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; }
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; }
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)); }
int hash2(int key, int size) { return sumOfDigits(key)%size; }
int main() { std::cout << "The answer is " << sumOfDigits(2,1000) << std::endl; return 0; }