RosettaCodeData/Task/Abundant-odd-numbers/Processing/abundant-odd-numbers.processing
2023-07-01 13:44:08 -04:00

43 lines
904 B
Text

void setup() {
println("First 25 abundant odd numbers: ");
int abundant = 0;
int i = 1;
while (abundant < 25) {
int sigma_sum = sigma(i);
if (sigma_sum > 2 * i) {
abundant++;
println(i + " Sigma sum: " + sigma_sum);
}
i += 2;
}
println("Thousandth abundant odd number: ");
while (abundant < 1000) {
int sigma_sum = sigma(i);
if (sigma_sum > 2 * i) {
abundant++;
if (abundant == 1000) {
println(i + " Sigma sum: " + sigma_sum);
}
}
i += 2;
}
println("First abundant odd number greater than 10^9: ");
i = int(pow(10, 9)) + 1;
while (!(sigma(i) > 2 * i)) {
i += 2;
}
println(i + " Sigma sum: " + sigma(i));
}
int sigma(int n) {
int sum = 0;
for (int i = 1; i < sqrt(n); i++) {
if (n % i == 0) {
sum += i + n / i;
}
}
if (sqrt(n) % 1 == 0) {
sum += sqrt(n);
}
return sum;
}