int main(void) { int abundantNumbers[DEFICITMAX] = {0}; int sumOfAbundantNumbers[DEFICITMAX] = {0}; int i, j, sum = 0; // generate list of abundant numbers 1-DEFICITMAX for(i = 1; i <= DEFICITMAX; i++) if(isAbundant(i) == 1) abundantNumbers[i] = 1; // generate list of all numbers that are the sum of abundant numbers for(i = 1; i <= DEFICITMAX; i++) { if(abundantNumbers[i] > 0) { for(j = 1; i + j <= DEFICITMAX; j++) { if(abundantNumbers[j] > 0 && sumOfAbundantNumbers[i + j] != 1) { sumOfAbundantNumbers[i + j] = 1; } } } } // sum up all positive integers that cannot be written as the sum for(i = 1; i <= DEFICITMAX; i++) { if(sumOfAbundantNumbers[i] == 0) { sum += i; } } printf("\n\n%d", sum); return 1; }
int main() { std::vector<int> abund; int mark[28123] = {0}; for(int i = 1; i < 28123; ++i) if(isAbundant(i)) abund.push_back(i); for(int i = 0; i < abund.size(); ++i) { for(int j = i; j < abund.size(); ++j) { int val = abund[i] + abund[j]; if(val < 28123) mark[val] = 1; } } long long sum = 0; for(int i = 0; i < 28123; ++i) if(mark[i] == 0) { std::cout << i << std::endl; sum += i; } std::cout << sum << std::endl; return 0; }
int isSummable(int num) { int i, j; for(i = 12; i < num; i++ ) { if(isAbundant(i)) { for(j = 12; j < num; j++) { if(i+j > num) { break; } else if (isAbundant(j)) { if(i+j == num) { return 1; } } } } } return 0; }
bool *generateAbundants(long n) { bool *res = calloc((unsigned long) n, sizeof(bool)); for(long i = 1; i < n; i++) { res[i] = isAbundant(i); } return res; }
int main() { int start_s = clock(); const int count = 28123; bool abundant[count]; for (int i = 0; i < count; ++i) { abundant[i] = isAbundant(i); } bool madeOfAbundant[count]; for (int i = 0; i < count; ++i) { madeOfAbundant[i] = false; } for (int i = 0; i <= count/2; ++i) { if (abundant[i]) { for (int j = i; j <= count; ++j) { if (madeOfAbundant[i + j] == false) { if (abundant[j]) { madeOfAbundant[i + j] = true; //std::cout << i + j << std::endl; } } if (i + j > count) { break; } } } } int sum = 0; for (int i = 0; i < count; ++i) { if (madeOfAbundant[i] == false) { //std::cout << i << std::endl; sum += i; } } std::cout << sum << std::endl; int stop_s = clock(); std::cout << "time: " << (stop_s - start_s) / double(CLOCKS_PER_SEC) * 1000 << std::endl; while (1); }
int solve23() { vector<int> values; int total = 0; for( int i = 1; i <= 28123; ++i ) { total += i; if( isAbundant( i ) ) { values.push_back( i ); } } int result = solve( values ); return total - result; }
int main() { int i, j = 0, k, result = 0; for(i = 1; i <= 28123; i++) a[i] = 0; for(i = 1; i <= 28123; i++){ if(isAbundant(i)) b[j++] = i; } for(i = 0; i < j; i++) for(k = i; k < j; k++){ if(b[i] + b[k] <= 28123) a[b[i]+b[k]] = 1; } for(i = 1; i <= 28123; i++){ if(a[i] == 0) result += i; } printf("%d\n", result); return 0; }
int main(){ int i, sum; int num, el; list abundant = NULL; list travel; int * array = (int *) malloc(sizeof(int)*(MAXIMO+1)); for(i = 0 ; i <= MAXIMO ; i++){ array[i] = i; } for(i = 0 ; i <= MAXIMO ; i++){ if(isAbundant(i)){ abundant = add_element(abundant, new_element(i)); } } for(travel = abundant ; travel != NULL ; travel = travel->next){ num = get_element(travel, true); for(el = num ; el != -1 ; el = get_element(travel, false)){ if(num + el <= MAXIMO) array[num+el] = -1; } } // print_list(abundant); // for(i = 0, sum = 0 ; i <= MAXIMO ; i++){ // printf("%d\n", array[i]); // } for(i = 0, sum = 0 ; i <= MAXIMO ; i++){ if(array[i] != -1) sum += array[i]; } printf("Answer: %d\n", sum); delete_list(abundant); free(array); return 0; }
int main() { std::set<int> abunNums; for (int i=11; i<28123; i++) { if (isAbundant(i)) { abunNums.insert(i); } } int total = 0; for (int i=1; i<28123; i++) { for (std::set<int>::iterator it = abunNums.begin(); it!= abunNums.end(); ++it) { if (abunNums.find(i - *it) != abunNums.end()) { break; } else if (i - *it < 12) { total+=i; break; } else if (it == (--abunNums.end())) { total+=i; break; } } } std::cout << total << std::endl; return 0; }