Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

PunNumber class returns interesting (or fun) information about the integer repre

ID: 3875788 • Letter: P

Question

PunNumber class returns interesting (or fun) information about the integer representation of itself The PunNumber object can return the number of digits it has, the sum of its digits, whether or not it's prime number, and whether or not it's a perfect number. An incomplete definition of the FunNumbe class appears below. creates and manipulates a number, which is funl public class FunNumber Constructs a FunNumber representation of the integer n. Assumes n0 @param n the FunNumber value public FunNumber (int n) f. . ) Constructs a FunNumber representation of the String n. Assumesno. oparam n the string to be represented by this FunNumber public FunMumber (String n) f. .. Returns the number of digits in this FunNumber ereturn the number of digits in this FunNumber public int numDigits) / Code goes here

Explanation / Answer

//I have combined both class and main in one file ,, u can separate that ..

public class FunNumber

{

public FunNumber(int n)

{

myNum = n;

}

public FunNumber(String n)

{

myNum=Integer.parseInt(n);

}

public int numDigits()

{

int rem ,n = myNum,count=0;

do

{

rem = myNum/10;

++count;

n /=10;

}while(n>0);

return count;

}

public int sumDigits()

{

int rem ,n = myNum,sum=0;

do

{

rem = myNum/10;

sum+=rem;

n /=10;

}while(n>1);

return sum;

}

public boolean isPerfect()

{

int sum = 0;

for(int i = 1; i < myNum;i++)

{

if(myNum%i == 0)

{

sum+=i;

}

}

if(sum == myNum)

return true;

else

return false;

}

public FunNumber reverseNum()

{

int num = myNum,reverse_no=0,rem;

  

//System.out.printf("Num in reverse fun= %d ",myNum);

do

{

rem = num%10;

reverse_no = reverse_no*10+rem;

//System.out.printf("reverse_no = %d ",reverse_no);

num/=10;

}while(num>0);

myNum = reverse_no;

return this;

}

public String toString()

{

int rem,num = myNum;

//System.out.printf("myNum= %d ",num);

String str = new String();

do

{

rem = num%10;

str+=rem;

num/=10;

}while(num>0);

//reverse a string as number 123 will be extracted as 321 from above code

String revStr = new String();

for(int i = str.length()-1; i >=0 ;i--)

{

revStr +=str.charAt(i);

}

//System.out.printf("toStr= %s ",revStr);

return revStr;

}

private int myNum;

public static void main(String[] args)

{

//test number of digits

FunNumber funny = new FunNumber(123);

System.out.printf("Number of digits in number %s = %d ",funny.toString(),funny.numDigits());

//test perfect number

FunNumber funny1 = new FunNumber(496);

if(funny1.isPerfect())

System.out.printf("Number %s is perfect number ",funny1.toString());

else

System.out.printf("Number %s is not perfect number ",funny1.toString());

//reverse a number funny

String s = funny.toString();

FunNumber funnyRev = funny.reverseNum();

System.out.printf("Reverse of a number %s is %s ",s,funnyRev.toString());

//test for assigning string to number and print number using toString()

  

FunNumber funnyStr = new FunNumber("23456");

s = funnyStr.toString();

System.out.printf("Number of digits in number %s is = %d ",s,funnyStr.numDigits());

  

}

}

----------------------------------------------------

//output1
Number of digits in number 8976 = 4
Number 12 is not perfect number
Reverse of a number 8976 is 6798
Number of digits in number 1234789 is = 7
//output2:
Number of digits in number 123 = 3
Number 496 is perfect number
Reverse of a number 123 is 321
Number of digits in number 23456 is = 5

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote