Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <iomanip>
- #include <fstream>
- using namespace std;
- bool perfect(int number);
- int main()
- {
- int k = 1, per = 0, list[200], seg, check, pos1 = 0, pos2 = 199;
- cout << "Perfect Numbers.\n";
- for (check = 1; check <= 10000; check++){
- if (perfect(check)){
- k = 1;
- per = 0;
- pos1 = 0;
- pos2 = 199;
- do{
- if (check%k == 0){
- list[pos1] = k;
- pos1++;
- list[pos2] = check / k;
- pos2--;
- per = per + (check / k) + k;
- }
- k++;
- } while (k < (check / k));
- seg = pos1;
- pos2++;
- cout << check << "=";
- for (pos1 = 0; pos1 < seg; pos1++){
- cout << list[pos1] << "+";
- }
- for (pos2; pos2 < 199; pos2++){
- if (pos2 == 198){
- cout << list[pos2] << endl;
- }
- else{
- cout << list[pos2] << "+";
- }
- }
- }
- }
- system("PAUSE");
- return(0);
- }
- bool perfect(int number){
- int k = 1, j = 199, per = 0, line[200], seg;
- do{
- if (number%k == 0){
- per = per + (number / k) + k;
- }
- j--;
- k++;
- } while (k < (number / k));
- k--;
- j++;
- if ((per / 2) == number && number != 1){
- return true;
- }
- else{
- return false;
- }
- }
- /*
- Output
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement