How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the C programming language
How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the C programming language
Table of Contents
Problem Statement
These define three classifications of positive integers based on their proper divisors. Let P(n) be the sum of the proper divisors of n where the proper divisors are all positive divisors of n other than n itself.
6 has proper divisors of 1, 2, and 3. 1 + 2 + 3 = 6, so 6 is classed as a perfect number.
Calculate how many of the integers 1 to 20,000 (inclusive) are in each of the three classes. Show the results here.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the C programming language
This C program counts the number of deficient, perfect, and abundant numbers between 1 and 20000.
-
A deficient number is a positive integer whose sum of proper divisors (positive factors excluding the number itself) is less than the number.
-
A perfect number is a positive integer whose sum of proper divisors is equal to the number.
-
An abundant number is a positive integer whose sum of proper divisors is greater than the number.
Source code in the c programming language
#include<stdio.h>
#define de 0
#define pe 1
#define ab 2
int main(){
int sum = 0, i, j;
int try_max = 0;
//1 is deficient by default and can add it deficient list
int count_list[3] = {1,0,0};
for(i=2; i <= 20000; i++){
//Set maximum to check for proper division
try_max = i/2;
//1 is in all proper division number
sum = 1;
for(j=2; j<try_max; j++){
//Check for proper division
if (i % j)
continue; //Pass if not proper division
//Set new maximum for divisibility check
try_max = i/j;
//Add j to sum
sum += j;
if (j != try_max)
sum += try_max;
}
//Categorize summation
if (sum < i){
count_list[de]++;
continue;
}
if (sum > i){
count_list[ab]++;
continue;
}
count_list[pe]++;
}
printf("\nThere are %d deficient," ,count_list[de]);
printf(" %d perfect," ,count_list[pe]);
printf(" %d abundant numbers between 1 and 20000.\n" ,count_list[ab]);
return 0;
}
You may also check:How to resolve the algorithm Cyclops numbers step by step in the Sidef programming language
You may also check:How to resolve the algorithm Hello world/Line printer step by step in the Scala programming language
You may also check:How to resolve the algorithm Integer sequence step by step in the Lua programming language
You may also check:How to resolve the algorithm Integer sequence step by step in the Objeck programming language
You may also check:How to resolve the algorithm Active object step by step in the FreeBASIC programming language