int main() { v[0] = 1; v[1] = 1; long long i, j; for (i = 2; i * i < 1000; i++) { if (!v[i]) { for (j = i * i; j < 1000; j += i) { v[j] = 1; } } } int index = 0; for (i = 2; i < 1000; i++) { if (!v[i]) { primes[index++] = i; } } int s; int cases=1; while(scanf("%d",&s)==1 && s) { int flag=0; for(i=s;i>=0;i--) { long long returnvalue=sumDiv(i); if(returnvalue==s) { flag=1; printf("Case %d: %lld",cases,i); break; } } if(!flag) { printf("Case %d: -1",cases); } printf("\n"); } return 0; }
int main(int argc, char **argv) { long int res = sumDiv(3) + sumDiv(5) - sumDiv(15); printf("Soma: %ld\n", res); return 0; }
int main( void ) { unsigned long long a, b; unsigned long long s; a = 1; s = 0; while( a < 10000 ) { b = sumDiv( a ); if( sumDiv( b ) == a && b > a ) s += ( a + b ); a += 1; } printf( "Answer: %llu\n", s ); return 0; }
/*For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220. Evaluate the sum of all the amicable numbers under 10000.*/ int problem21(){ int aiDivisorSum[N]; for(int i=0;i<N;i++){ aiDivisorSum[i] = sumDiv(i); } int sum = 0; for(int i=0;i<N;i++){ if(aiDivisorSum[i] < N && aiDivisorSum[aiDivisorSum[i]] < N) if(aiDivisorSum[aiDivisorSum[i]] == i) if(aiDivisorSum[i] != i) sum += i; } return sum; }