Can any one help me with this exercise . . !
I did not understnd it . ?

A number is called a proper divisor of N if M < N and M divides N. A positive integer is called perfect if it is the sum of its positive proper divisors. For example, the positive proper divisors of 28 are 1, 2, 4, 7, and 14 and 1+2+4+7+14=28. Therefore, 28 is perfect. Write a program to display the first 4 perfect integer ..

## Recommended Answers

Can any one help me with this exercise . . !
I did not understnd it . ?

A number is called a proper divisor of N if M < N and M divides N. A positive integer is called perfect if it is the sum of its positive …

## All 11 Replies

Can any one help me with this exercise . . !
I did not understnd it . ?

A number is called a proper divisor of N if M < N and M divides N. A positive integer is called perfect if it is the sum of its positive proper divisors. For example, the positive proper divisors of 28 are 1, 2, 4, 7, and 14 and 1+2+4+7+14=28. Therefore, 28 is perfect. Write a program to display the first 4 perfect integer ..

you did not understand?

It gives a good example.

I think the first perfect integer is 6 because positive proper divisors are 1 2 3 and 1+2+3 = 6.

12 is not perfect cause 1+2+3+4+6 = 16 > 12

I even calculated the numbers from 1 to 20 in my mind, and found none.

You got it?

I think this is a homework problem.....I did the coding and the first 4 perfect numbers are:

The perfect number is 6
The perfect number is 28
The perfect number is 496
The perfect number is 8128

Anyways, I will not give away the solution and rob you of your valuable education, however I will give the pseudo code......hope you can do the rest.....

``````class name
{
public static void main(String[] args)
{
initialize a count variable to 0 this will help you to count to first 4 perfect numbers

use for loop to check first 10000 numbers from which to get the first 4 perfect numbers starting from i=1

{
initialize sum variable
use for loop from variable j=1 to check till i

{
check divisibility
find sum of j's if i is divisble by j
}

use if statement to check for perfect number
and if count is less than 5
{
print the perfect number and increase count by one
}
}

}

}``````

I got it ..
I will do it know .. if I can =)

Thanx for yours explanation ..

``````package perfectnumbers;
import java.util.Scanner;
public class Main {

public static void main(String[] args) {
Scanner read = new Scanner(System.in);
int num,count,sum;

System.out.printf(" Enter ur number: ");
num = read.nextInt();

count=0;
for( int m=1 ; m <10000; m++)
{
sum=0;
for ( int n=1; n<m; m++ )
{
if ( m %n == 0 )
sum = sum +  n;
else;
}
if ((num / m) && ( count < 5))
System.out.println (" The perfect number is:  ");
else;
}
count ++;
}

}
}
}``````

It's not true . !

It's not true . !

``````Scanner read = new Scanner(System.in);

System.out.printf(" Enter ur number: ");

num = read.nextInt();``````

There is no need to take input from the user. You are checking for perfect numbers from 1 to 10000.

also to check for perfect number you should use the condition

sum==m (i.e 1+2+3 = = 6)

``````count=0;
for( int m=1 ; m <10000; m++)
{
sum=0;
for ( int n=1; n<m; m++ )
{
if ( m %n == 0 )
sum = sum +  n;
else;
}
if ((num / m) && ( count < 5))
System.out.println (" The perfect number is:  ");
else;
}
count ++;
}``````

like this . . ?

try something like this

``````count=0;
for( int m=1 ; m <10000; m++)
{
sum=0;
for ( int n=1; n<m; m++ )
{
if ( m %n == 0 )
sum = sum +  n;
else;
}
if ((sum==m) && ( count < 5))
System.out.println (" The perfect number is:  ");
else;
count ++;

}

}``````

does not work . . !

it gives me :

the perfect number is:
the perfect number is:
the perfect number is:
the perfect number is:

``````int count,sum,m = 0,n = 0;

count=1;
while ( count <= 10000 )
{
sum=0;
while (  n <  m )
{
if ( m %n == 0 )
sum = sum +  n;
else;

}
if ((sum==m) && ( count < 5))
System.out.println (" The perfect number is: %d\n ");
else;

count ++;
}
}
}``````

I do it like this , , but the numbers does not appear . . !

its basic way how to input proper divisor;;
take a look around;
\

``````/*
*Name: federick c, pasco
*Date: Feb.16, 2011
*Description: to calculate a proper divisor into an Integers,
*/

import java.io.*;
public class ProperDivisor
{
public static void main (String [] args) throws IOException
{

BufferedReader value  = new BufferedReader (new InputStreamReader(System.in));

String input;
int proper;
//int m;

do{

System.out.print("\n\n=====================================================================");
System.out.print("\n\nEnter an integer: ");
proper = Integer.parseInt(value.readLine());
int z=proper-1;

System.out.print("The proper divisors of " + proper + " are ");

for (int a=1; a<=z; a++)// loop a= start 1 z=end sa loop
{
int m=proper%a;// variable
if (m==0) // condotion sa int m f mo true ang sa loop i print ang # nga na belong sa for loop
System.out.print(+ a +",");

}

System.out.print("\nTry Again? (yes or no):");
input = value.readLine();

}while(input.equalsIgnoreCase("yes"));

System.out.print("\n\n=====================================================================");

}
}``````
Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.