Example #1
0
int main(void)
{
   FILE *inp, *outp;
   int numIn, status;

   /*Open files*/
   inp = fopen("perfect.dat", "r");
   outp = fopen("perfect.out", "w");

   status = fscanf(inp, "%d", &numIn);
   
   /*While there are no errors, output results to output file*/
   while(status == 1)
   {
     if (numIn == sumOfDivisors(numIn))
       fprintf(outp, "%d is a perfect number\n", numIn);
     else
       fprintf(outp, "%d is not a perfect number\n", numIn);
     status = fscanf(inp, "%d", &numIn);
   }

   if (status != EOF)
     printf("There was an error in the input.  \n\nExiting.");

   /*Close files*/
   fclose(inp);
   fclose(outp);

   return(0);
}
Example #2
0
int main(int argc, char **argv)
{
    unsigned int result = 0;
    printf("220 -> %d\n", sumOfDivisors(220));
    printf("284 -> %d\n", sumOfDivisors(284));
    for (int i = 0; i < 10000; i++)
    {
        unsigned int rv = sumOfDivisors(i);
        if (sumOfDivisors(rv) == i)
        {
            if (i < rv)
                result += i + rv;
        }
    }
    printf("%d\n", result);
    return 0;
}
Example #3
0
void main()
{
	int sums[9999];
	int i, count;
	for (i = 0; i < 9999; ++i)
		sums[i] = sumOfDivisors(i + 1);
	for(i = 0,count = 0;i < 9999;i++)
		if((sums[i] < 9999) && (sums[i] > (i + 1)) && (sums[sums[i] - 1] == (i + 1)))
			count += (i + 1) + sums[i];
	printf("solution: %d\n", count);
}
int main() {
  
  assert(sumOfDivisors(220) == 284);
  
  int number1, number2;
  scanf("%d %d", &number1, &number2);
  
  if (amicable_numbers(number1, number2)) printf("YES\n");
  else printf("NO\n");
  
  return 0;
}
Example #5
0
/* returns array of all abundant nums less than max parameter,
   outputs size of resulting array to size parameter */
unsigned int *abunNums(unsigned int max, unsigned int *size)
{
    unsigned int *out = NULL;
    unsigned int c;
    unsigned int n = 0; 		/* array size representer */

    for (c=12 ; c<max ; c++) // 12 is smallest abundant num
        if (sumOfDivisors(c)>c || c%12==0) {
            n+=1;
            out = (unsigned int *)realloc(out,sizeof(unsigned int)*n);
            out[n-1] = c;
        }

    *size = n;
    return out;
}
Example #6
0
int main(int argc, char const *argv[])
{
    int amicableSum = 0;
    int limit = 10000;
    bool nums[10000] = {false};
    bool isSumSuitable;
    bool isAmicable = false;
    printf("\n");

    int iSum = 0;
    int i;
    for (i = 2; i < limit; i++)
    {
        if (nums[i] == false)
        {
            iSum = sumOfDivisors(i);
            isSumSuitable = (iSum != i) && (iSum < limit) && (iSum > 1);
            if (isSumSuitable)
            {
                isAmicable = checkAmicable(i, iSum);    
            }
        }
        if (isAmicable)
        {
            printf("%d and %d are an amicable pair\n", i, iSum);
            nums[i] = true;
            nums[iSum] = true;
            amicableSum += i + iSum;
        }
        isAmicable = false;
    }

    printf("\nSum of amicable numbers under %d:\n\t%d\n", limit, amicableSum);

    return 0;
}
Example #7
0
bool isAbundant(int n)
{
	return (sumOfDivisors(n) > n);
}
Example #8
0
bool checkAmicable(int n, int m)
{
    int mSum = sumOfDivisors(m);
    bool isAmicable = mSum == n;
    return isAmicable;
}
bool amicable_numbers(int a, int b) {
    
  return ((sumOfDivisors(a) == b) && (sumOfDivisors(b) == a));
  
}