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 hereExplanation / 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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.