#include <stdio.h>
int sum_of_series(int limit, int difference)
{
int n = 1 + limit / difference; // integer math gives number of terms including term 0
return ((n * (n - 1)) / 2) * difference;
}
int main(void){
int sum_of_series_3 = sum_of_series(999,3);
int sum_of_series_5 = sum_of_series(999,5);
int sum_of_series_15 = sum_of_series(999,15);
int answer = sum_of_series_3 + sum_of_series_5 - sum_of_series_15;
printf("sum of all the multiples of 3 or 5 below 1000\n"); printf("answer = %d 3s=%d 5s=%d 15s=%d\n",answer
, sum_of_series_3
, sum_of_series_5
, sum_of_series_15
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgc3VtX29mX3NlcmllcyhpbnQgbGltaXQsIGludCBkaWZmZXJlbmNlKQp7CiAgICBpbnQgbiA9IDEgKyBsaW1pdCAvIGRpZmZlcmVuY2U7IC8vIGludGVnZXIgbWF0aCBnaXZlcyBudW1iZXIgb2YgdGVybXMgaW5jbHVkaW5nIHRlcm0gMAogICAgcmV0dXJuICgobiAqIChuIC0gMSkpIC8gMikgKiBkaWZmZXJlbmNlOwp9CgppbnQgbWFpbih2b2lkKXsKICAgIAogICAgaW50IHN1bV9vZl9zZXJpZXNfMyA9IHN1bV9vZl9zZXJpZXMoOTk5LDMpOwogICAgaW50IHN1bV9vZl9zZXJpZXNfNSA9IHN1bV9vZl9zZXJpZXMoOTk5LDUpOwogICAgaW50IHN1bV9vZl9zZXJpZXNfMTUgPSBzdW1fb2Zfc2VyaWVzKDk5OSwxNSk7CiAgICAKICAgIGludCBhbnN3ZXIgPSBzdW1fb2Zfc2VyaWVzXzMgKyBzdW1fb2Zfc2VyaWVzXzUgLSBzdW1fb2Zfc2VyaWVzXzE1OyAgICAKICAgIAogICAgcHJpbnRmKCJzdW0gb2YgYWxsIHRoZSBtdWx0aXBsZXMgb2YgMyBvciA1IGJlbG93IDEwMDBcbiIpOwogICAgcHJpbnRmKCJhbnN3ZXIgPSAlZCAgM3M9JWQgNXM9JWQgMTVzPSVkXG4iLGFuc3dlciwgc3VtX29mX3Nlcmllc18zLCBzdW1fb2Zfc2VyaWVzXzUsIHN1bV9vZl9zZXJpZXNfMTUpOwogICAgcmV0dXJuIDA7Cn0=