Perfect Numbers
This program prints all the perfect numbers from 1 to 1000. Perfect numbers are those numbers in which the sum of the number's proper positive factors (excluding the number itself) is equal to that number.
Let's take the number 6 for example having the factors 1,2,3 and adding these factors will equate to the number itself (1+2+3 = 6).
/* Perfect Numbers show perfect numbers from 1-1000 */ #include <iostream> using namespace std; int main(void) { //variables int i,j,sumOfFactors; cout << "These are the perfect numbers:" << endl; //check numbers from 1-1000 for (i = 1; i <= 1000; i++) { sumOfFactors = 0; //look for the factors of a number for (j = 1; j < i; j++) { //check for factors and add them up if (0 == (i%j)) { sumOfFactors += j; } } //if perfect number, print if (sumOfFactors == i) { cout << i << endl; } } getchar(); return 0; }
The program shows a for loop of range 1 to 1000.
In each loop, it evaluates the number by looking for its factors. And every time a factor is seen, it adds it to the variable sumOfFactors which will contain the sum of the all factors. But it should always have an initial value of 0 so it is initialized before it enters the loop which evaluates for the factors. Notice that this loop is only up to the value of the number less than 1 (j < i) because the number itself should not be part of the summed up factors.
And a factor is determined if it has no remainder thus modulus operator (%) is used. If there is no remainder then j is a factor of the number ( i ).
Now after the the loop which sums up all the factors of the number, it checks if that sum is equal to the number and prints it if it is a perfect number. Then the loop continues with the new value of the number until all the numbers from 1 - 1000 are evaluated.
2 comments
Write commentsThanks for this post! helped me a lot! :)
ReplyCan you write a program to display
Replyuntegers between 1 and 100 that are divisible by either 6 or 7