Untitled
unknown
c_cpp
2 years ago
1.5 kB
9
Indexable
#include <stdio.h> int isLastDivisor(int num, int x) { int last_divisor_of_num = -1; for (int i = num / 2; i > 1; i--){ if (num % i == 0){ last_divisor_of_num = i; break; } } return (x == last_divisor_of_num) ? 1 : 0; } int main() { int maxNum = 0; int maxSum = 0; for (int num = 180; num <= 210; num++) { int divisors_sum = 0; printf("%d ", num); int divisorCount = 0; for (int i = 2; i <= num / 2; i++) { if (num % i == 0) { divisors_sum += i; printf("%3d", i); divisorCount++; if (isLastDivisor(num, i) == 0 && i != num / 2) { printf(","); if (divisorCount == 4) { printf("\n "); divisorCount = 0; } } } } if (divisors_sum > maxSum) { maxSum = divisors_sum; maxNum = num; } for (int k = 0; k < 4 - divisorCount; k++) { printf(" "); } if (divisorCount == 1 || divisorCount == 0){ printf(" "); } else { for (int k = 0; k < 4 - divisorCount; k++) { printf(" "); } } printf(" "); printf("%3d\n", divisors_sum); } printf("\n%d\n", maxNum); return 0; }
Editor is loading...