Write a program to check whether a no. is Smith no. or not.
Source Code:
import java.io.*;
class smithnumber
{
int sn,csn1,i,s1,s2,csn2,j;
int d [] = new int [30];
int B [] = new int [30];
smithnumber(int x)
{
sn=x;
csn1=x;
csn2=x;
i=0;
s1=0;
s2=0;
j=0;
}
void getdigits(int sn)
{
while(sn!=0)
{
d[i]=(sn%10);
i++;
sn=sn/10;
}
i=i-1;
for(int i2=0;i2<=i;i2++)
{
s1=s1+d[i2];
}
}
void getfactors(int csn1)
{
for(int i1=2;i1<=csn1-1;)
{
if(csn1%i1==0)
{
csn1=csn1/i1;
B[j]=i1;
j++;
}
else
i1++;
}
B[j]=csn1;
}
void check()
{
getdigits(sn);
getfactors(csn1);
if(B[j]/10>0)
{
int h=B[j];
B[j]=B[j]%10;
h=h/10;
j=j+1;
B[j]=h;
}
for(int v=0;v<=j;v++)
{
s2=s2+B[v];
}
for(int u=0;u<=j;u++)
{
System.out.println(" "+B[u]);
}
}
void display()
{
if(s1==s2)
System.out.println("Smith NUmber");
else
System.out.println("not Smith number");
}
}
************MAIN CLASS*************
class main
{
public static void main(String ars[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter a number:");
int x=Integer.parseInt(br.readLine());
smithnumber ob=new smithnumber(x);
ob.check();
ob.display();
}
}
OUTPUT:
D:\java>javac assignment3.java
D:\java>java main
Enter a number:
347
not Smith number
D:\java>java main
Enter a number:
121
not Smith number
D:\java>java main
Enter a number:
666
Smith NUmber
0 comments