Programming Examples
Java program for Keith Number
Write a Program in Java to input a number and check whether it is a Keith Number or not.
Note: A Keith Number is an integer N with ‘d’ digits with the following property:
If a Fibonacci-like sequence (in which each term in the sequence is the sum of the ‘d’ previous terms) is formed, with the first ‘d’ terms being the decimal digits of the number N, then N itself occurs as a term in the sequence.
For example, 197 is a Keith number since it generates the sequence 1, 9, 7, 17, 33, 57, 107, 197, ………..
Some keith numbers are: 14 ,19, 28 , 47 , 61, 75, 197, 742, 1104, 1537……………
Sample
Enter the number : 197
The number is a Keith Number
Enter the number : 14
The number is a Keith Number
Enter the number : 53
The number is a not a Keith Number
Solution
import java.util.Scanner;
public class KeithNumber
{
public static void main(String[] args)
{
Scanner sc = new Scanner( System.in );
System.out.print("Input a number: ");
int n = sc.nextInt();
int n1 = n;
String s = Integer.toString(n);
int d=s.length();
int arr[]=new int[n];
int i, sum;
for(i=d-1; i>=0; i--)
{
arr[i]=n1 % 10;
n1=n1/10;
}
i=d; sum=0;
while(sum<n)
{
sum = 0;
for(int j=1; j<=d; j++)
{
sum=sum+arr[i-j];
}
arr[i]=sum;
i++;
}
if(sum==n)
System.out.println("Keith Number");
else
System.out.println("Not a Keith Number");
}
}
Output
Input a number: 197
Keith Number
--------------------------------------
Input a number: 14
Keith Number
----------------------------------------
Input a number: 53
Not a Keith Number