MasterING
MasterING
Recursion
MasterING
Recursion
MasterING
PROGRAMS
Recursion
PROGRAMS
Recursion
PROGRAMS
PROGRAMS
Question
CALCULATE POWER OF A NUMBER USING RECURSION
ENTER THE NUMBER
10
ENTER THE POWER
10
10^10=10000000000
Answer
import java.util.Scanner;
public class powerOfANumber
{
long num=0,power=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
System.out.println("ENTER THE POWER");
power=sc.nextLong();
public long calculatePower(long n,long pow)
{
if(pow==0)
{
return 1;
}
else
{
return n*calculatePower(n,pow-1);
}
}
public void display()
{
System.out.println(num+"^"+power+"="+calculatePower(num,power));
}
public static void main()
{
powerOfANumber ob1=new powerOfANumber();
ob1.accept();
ob1.display();
}
}
Question
PRINT SUM OF DIGITS OF A NUMBER USING RECURSION
ENTER THE NUMBER
1234
SUM OF DIGITS OF 1234 IS 10
Answer
import java.util.Scanner;
public class sumOfDigits
{
public static int CalculateSumOfDigits(int num)
{
if(num==0)
{
return 0;
}
else
{
return num%10 + CalculateSumOfDigits(num/10);
}
}
public static void main()
{
int num=0,sum=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextInt();
sum=CalculateSumOfDigits(num);
System.out.println("SUM OF DIGITS OF "+num+" IS "+sum);
}
}
Question
FIND SUM OF EVEN NUMBERS IN GIVEN RANGE USING RECURSION.
ENTER THE LOWER RANGE
1
ENTER THE UPPER RANGE
100
SUM OF EVEN NUMBER BETWEEN 1 AND 100 :2550
Answer
import java.util.Scanner;
public class sum
{
long lowerRange=0,upperRange=0,sum=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
public long findSum(long lowerRange)
{
if(upperRange< lowerRange)
{
return 0;
}
else if(lowerRange%2==0)
{
return lowerRange+findSum(lowerRange+1);
}
else
{
return findSum(lowerRange+1);
}
public void display()
{
sum=findSum(lowerRange);
System.out.println("Sum of even number between "+lowerRange+" AND "+upperRange+"
:"+sum);
}
public static void main()
{
sum ob1=new sum();
ob1.accept();
ob1.display();
}
}
Question
FIND THE SUM OF ODD NUMBERS IN A GIVEN RANGE USING RECURSION.
ENTER THE LOWER RANGE
1
ENTER THE UPPER RANGE
10
SUM OF ODD NUMBER BETWEEN 1 AND 10 :25
Answer
import java.util.Scanner;
public class sum
{
long lowerRange=0,upperRange=0,sum=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
public long findSum(long lowerRange)
{
if(upperRange< lowerRange)
{
return 0;
}
else if(lowerRange%2!=0)
{
return lowerRange+findSum(lowerRange+1);
}
else
{
return findSum(lowerRange+1);
}
public void display()
{
sum=findSum(lowerRange);
System.out.println("Sum of odd numbers between "+lowerRange+" AND "+upperRange+"
:"+sum);
}
public static void main()
{
sum ob1=new sum();
ob1.accept();
ob1.display();
}
}
Question
CHECK WHETHER A NUMBER IS A DISARIUM NUMBER USING RECURSION.
(A NUMBER IS SAID TO BE THE DISARIUM NUMBER WHEN THE SUM OF ITS DIGIT RAISED TO THE
POWER OF THEIR RESPECTIVE POSITIONS IS EQUAL TO THE NUMBER ITSELF.)
11 + 72 + 53 = 1 + 49 + 125 = 175
ENTER THE NUMBER
175
175 IS A DISARIUM NUMBER
Answer
import java.util.Scanner;
public class disariumNumber
{
public static int CountDigits(long num,int count)
{
if(num==0)
{
return count;
}
else
{
count++;
return CountDigits(num/10,count);
}
}
public static long CalculateSum(long num,int totalDigits)
{
if(num==0)
{
return 0;
}
else
{
return (long)(Math.pow(num%10,totalDigits))+CalculateSum(num/10,totalDigits-1);
}
}
public static void main()
{
long num=0,sum=0;
int FrequencyOfDigits=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
FrequencyOfDigits=CountDigits(num,0);
sum=CalculateSum(num,FrequencyOfDigits);
if(sum==num)
{
System.out.println(num+" IS A DISARIUM NUMBER");
}
else
{
System.out.println(num+" IS NOT A DISARIUM NUMBER");
}
}
}
Question
CHECK WHETHER A NUMBER IS MAGIC NUMBER USING RECURSION.
IF THE SUM OF ITS DIGITS RECURSIVELY ARE CALCULATED TILL A SINGLE DIGIT. IF THAT
SINGLE DIGIT IS 1 THEN THE NUMBER IS A MAGIC NUMBER.
EG,
28=2+8=10
ADDING DIGITS IN 28 WE GET 10,
10=1+0=1
ADDING DIGITS IN 10 WE GET 1
HENCE, 28 IS MAGIC NUMBER
Answer
import java.util.Scanner;
public class magicNumber
{
long num=0,temp=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
public long CalculateSumOfDigits(long n)
{
if(n==0)
{
return 0;
}
else
{
return n%10 + CalculateSumOfDigits(n/10);
}
}
public void isMagicNumber()
{
temp=num;
while(temp>9)
{
temp=CalculateSumOfDigits(temp);
}
if(temp==1)
{
System.out.println(num+ " IS A MAGIC NUMBER");
}
else
{
System.out.println(num+ " IS NOT A MAGIC NUMBER");
}
public static void main()
{
magicNumber ob1=new magicNumber();
ob1.accept();
ob1.isMagicNumber();
}
}
Question
CHECK WHETHER A NUMBER IS PRIME NUMBER OR NOT USING RECURSION
PRIME NUMBER IS A NUMBER THAT IS GREATER THAN 1 AND DIVIDED BY 1 OR ITSELF ONLY. IN
OTHER WORDS, PRIME NUMBERS CAN'T BE DIVIDED BY OTHER NUMBERS THAN ITSELF OR 1. FOR
EXAMPLE 2, 3, 5, 7, 11, 13, 17.... ARE THE PRIME NUMBERS.
ENTER A NUMBER:13
13 IS PRIME NUMBER
Answer
import java.util.Scanner;
public class primeNumber
{
public static boolean checkPrime(int n,int i)
{
if(n<=1)
{
return false;
}
else if(i==n)
{
return true;
}
else if(n%i==0)
{
return false;
}
else
{
return checkPrime(n,(i+1));
}
}
public static void main()
{
int num=0;
boolean isPrime=false;
Scanner sc=new Scanner(System.in);
System.out.print("ENTER A NUMBER:");
num=sc.nextInt();
isPrime=checkPrime(num,2);
if(isPrime==true)
{
System.out.println(num+" IS PRIME NUMBER");
}
else
{
System.out.println(num+" IS NOT PRIME NUMBER");
}
}
}
Question
CHECK WHETHER A NUMBER IS PALINDROME NUMBER USING RECURSION
(A PALINDROME NUMBER IS A NUMBER THAT REMAINS THE SAME WHEN ITS DIGITS ARE
REVERSED)
ENTER THE NUMBER
121
121 IS A PALINDROME NUMBER
Answer
import java.util.Scanner;
public class PalindromeNumber
{
public static long FindReverse(long num,long rev)
{
if(num<=0)
{
return rev;
}
else
{
rev=rev*10+num%10;
return FindReverse(num/10,rev);
}
}
public static void main()
{
long num=0,reverse=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
reverse=FindReverse(num,0);
if(num==reverse)
{
System.out.println(num+" IS A PALINDROME NUMBER");
}
else
{
System.out.println(num+" IS NOT A PALINDROME NUMBER");
}
}
}
Question
CHECK WHETHER A NUMBER IS A PRIME PALINDROME NUMBER USING RECURSION.
A PRIME PALINDROME INTEGER IS A POSITIVE INTEGER (WITHOUT LEADING ZEROES) WHICH IS
PRIME AS WELL AS A PALINDROME.
ENTER THE NUMBER
101
101 IS A PRIME PALINDROME NUMBER
Answer
import java.util.Scanner;
public class PrimePalindromeNumber
{
long num=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
}
public long FindReverse(long num,long reverse)
{
if(num==0)
{
return reverse;
}
else
{
reverse=reverse*10+num%10;
return FindReverse(num/10,reverse);
}
}
public boolean checkPrime(long n,long i)
{
if(n< 2)
{
return false;
}
/*Check if i is greater than n/2 because if any number is divisible by another number till another
number is less than or equal to num/2*/
else if(i>(n/2))
{
return true;
}
else if(n%i==0)
{
return false;
}
else
{
return checkPrime(n,(i+1));
}
}
public void display()
{
if(checkPrime(num,2)==true && num==FindReverse(num,0))
{
System.out.println(num+" IS A PRIME PALINDROME NUMBER");
}
else
{
System.out.println(num+" IS NOT A PRIME PALINDROME NUMBER");
}
public static void main(String args[])
{
PrimePalindromeNumber ob1=new PrimePalindromeNumber();
ob1.accept();
ob1.display();
}
}
Question
CHECK WHETHER TWO NUMBERS ARE TWIN PRIME USING RECURSION.
A TWIN PRIME IS A PRIME NUMBER THAT IS EITHER 2 LESS OR 2 MORE THAN ANOTHER PRIME
NUMBER—FOR EXAMPLE, EITHER MEMBER OF THE TWIN PRIME PAIR (41, 43)
ENTER FIRST NUMBER
41
ENTER SECOND NUMBER
43
41 AND 43 ARE TWIN PRIME NUMBERS
Answer
import java.util.Scanner;
public class TwinPrimeUsingRecursion
{
public static boolean isPrime(int n,int i)
{
if(n<=1)
{
return false;
}
else if(i==n)
{
return true;
}
else if(n%i==0)
{
return false;
}
else
{
return isPrime(n,(i+1));
}
}
public static void main()
{
int firstNumber=0,secondNumber=0,difference=0;
boolean isFirstNumberPrime=false,isSecondNumberPrime=false;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER FIRST NUMBER:");
firstNumber=sc.nextInt();
System.out.println("ENTER SECOND NUMBER:");
secondNumber=sc.nextInt();
isFirstNumberPrime=isPrime(firstNumber,2);
isSecondNumberPrime=isPrime(secondNumber,2);
difference=Math.abs(firstNumber-secondNumber);
// checking if the difference between two numbers is equal to 2
// else both the number is not twin prime numbers
if(difference==2)
{
if(isFirstNumberPrime==false || isSecondNumberPrime==false)
{
System.out.println(firstNumber+" AND "+secondNumber+" ARE NOT TWIN PRIME
NUMBERS");
}
else
{
System.out.println(firstNumber+" AND "+secondNumber+" ARE TWIN PRIME NUMBERS");
}
}
else
{
System.out.println(firstNumber+" AND "+secondNumber+" ARE NOT TWIN PRIME
NUMBERS");
}
}
}
Question
CHECK WHETHER A NUMBER IS UNIQUE NUMBER OR NOT USING RECURSION.
( A UNIQUE NUMBER IS A POSITIVE INTEGER (WITHOUT LEADING ZEROS) WITH NO DUPLICATE
DIGITS. FOR EXAMPLE 7, 135, 214 , 5243 ARE ALL UNIQUE NUMBERS WHEREAS 33, 3121, 200
ARE NOT.)
ENTER THE NUMBER
123456
123456 IS AN UNIQUE NUMBER
Answer
import java.util.Scanner;
public class UniqueNumber
{
public static int CountDigits(long num,int digit,int noOfDigits)
{
if(num==0)
{
return noOfDigits;
}
else
{
if(num%10==digit)
{
noOfDigits++;
}
return CountDigits(num/10,digit,noOfDigits);
}
}
public static void main()
{
int i=0,flag=0,count;
long num=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
System.out.println("Frequency of digits");
for(i=0;i<=9;i++)
{
count=CountDigits(num,i,0);
if(count>1)
{
flag=1;
break;
}
}
if(flag==1)
{
System.out.println(num+" IS NOT AN UNIQUE NUMBER");
}
else
{
System.out.println(num+" IS AN UNIQUE NUMBER");
}
}
}
Question
CHECK WHETHER A NUMBER IS AN ARMSTRONG NUMBER USING RECURSION
A POSITIVE NUMBER IS CALLED AN ARMSTRONG NUMBER IF SUM OF ITS OWN DIGITS EACH
RAISED TO THE POWER OF THE NUMBER OF DIGITS IS EQUAL TO NUMBER
153
1^3+5^3+3^3=1+125+27=153
153 IS AN ARMSTRONG NUMBER
Answer
import java.util.Scanner;
public class ArmstrongNumber
{
public static int SumOfDigit(int num,int i)
{
if(num==0)
{
return 0;
}
else
{
return (int)Math.pow(num%10,i)+SumOfDigit(num/10,i);
}
}
public static void main()
{
int num=0,sum=0,noOfDigits=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextInt();
noOfDigits=Integer.toString(num).length();
sum=SumOfDigit(num,noOfDigits);
if(sum==num)
{
System.out.println(num+" IS AN ARMSTRONG NUMBER");
}
else
{
System.out.println(num+" IS NOT AN ARMSTRONG NUMBER");
}
}
}
Question
CHECK WHETHER A NUMBER IS KRISHNAMURTHY NUMBER(ALSO CALLED STRONG NUMBER)
USING RECURSION.
A KRISHNAMURTHY NUMBER IS A NUMBER WHOSE SUM OF THE FACTORIAL OF DIGITS IS EQUAL
TO THE NUMBER ITSELF.
EG,
145=1!+4!+5!
=1+24+120
=145
HENCE, 145 IS KRISHNAMURTHY NUMBER
Answer
import java.util.Scanner;
public class KrishnamurthyNumber
{
long num=0,temp=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
public static long Factorial(long n)
{
if(n==1)
{
return 1;
}
else
{
return n*Factorial(n-1);
}
}
public void checkKrishnamurthy()
{
long sum=0;
temp=num;
while(temp>0)
{
sum=sum+Factorial(temp%10);
temp/=10;
}
if(sum==num)
{
System.out.print(num+ " IS A KRISHNAMURTHY NUMBER");
}
else
{
System.out.print(num+ " IS NOT A KRISHNAMURTHY NUMBER");
}
}
public static void main()
{
KrishnamurthyNumber ob1=new KrishnamurthyNumber();
ob1.accept();
ob1.checkKrishnamurthy();
}
}
Question
CONVERT BINARY TO A DECIMAL USING RECURSION AND VICE VERSA.
PRESS 1 TO CONVERT BINARY TO DECIMAL
PRESS 2 TO CONVERT DECIMAL TO BINARY
1
ENTER BINARY NUMBER:1111101
THE DECIMAL VALUE OF BINARY 1111101 IS 125
PRESS 1 TO CONVERT BINARY TO DECIMAL
PRESS 2 TO CONVERT DECIMAL TO BINARY
ENTER YOUR CHOICE:2
ENTER THE DECIMAL NUMBER:125
THE BINARY VALUE OF 125 IS 1111101
PRESS 1 TO CONVERT BINARY TO DECIMAL
PRESS 2 TO CONVERT DECIMAL TO BINARY
ENTER YOUR CHOICE:2
ENTER THE DECIMAL NUMBER:-125
THE BINARY VALUE OF -125 IS -1111101
PRESS 1 TO CONVERT BINARY TO DECIMAL
PRESS 2 TO CONVERT DECIMAL TO BINARY
ENTER YOUR CHOICE:1
ENTER THE BINARY NUMBER:-1111101
THE DECIMAL VALUE OF -1111101 IS -125
PRESS 1 TO CONVERT BINARY TO DECIMAL
PRESS 2 TO CONVERT DECIMAL TO BINARY
ENTER YOUR CHOICE:1
ENTER THE BINARY NUMBER:120101
INVALID BINARY NUMBER
Answer
import java.util.*;
public class DecimalToBinaryAndViceVersaUsingRecursion
{
public static boolean isBinaryNumbervalid(long bin)
{
while(bin>0)
{
if(bin%10>1)
{
System.out.println("Invalid binary number");
return false;
}
bin=bin/10;
}
return true;
}
public static long BinaryToDecimalConversion(long bin,int power)
{
if(bin==0)
{
return 0;
else
{
return ((bin%10)*(long)Math.pow(2,power))+BinaryToDecimalConversion(bin/10,power+1);
}
}
public static long DecimalBinaryConversion(long dec)
{
if(dec==0)
{
return 0;
}
else
{
return (dec%2)+10*(DecimalBinaryConversion(dec/2));
}
}
public static void main()
{
int choice=0;
long decimal=0,binary=0;
Scanner sc=new Scanner(System.in);
System.out.println("Press 1 to convert binary to decimal");
System.out.println("Press 2 to convert decimal to binary");
System.out.println("Enter your choice:");
choice=sc.nextInt();
switch(choice)
{
case 1:
System.out.print("ENTER BINARY NUMBER:");
binary=sc.nextLong();
if(binary< 0)//negative binary number
{
if(isBinaryNumbervalid(-binary)==true)
{
decimal=-BinaryToDecimalConversion(-binary,0);
/*
BinaryToDecimalConversion(-binary,0) will return positive decimal number
but we want negative decimal number so that's why
we added negative sign in front of BinaryToDecimalConversion(-binary,0)
*/
System.out.println("THE DECIMAL VALUE OF BINARY "+binary+" IS "+decimal);
}
}
else
{
if(isBinaryNumbervalid(binary)==true)
{
decimal=BinaryToDecimalConversion(binary,0);
System.out.println("THE DECIMAL VALUE OF BINARY "+binary+" IS "+decimal);
}
}
break;
case 2:
System.out.print("ENTER DECIMAL NUMBER:");
decimal=sc.nextLong();
if(decimal< 0)
{
binary=-DecimalBinaryConversion(-decimal);
/*
DecimalBinaryConversion(-decimal) will return positive binary number
but we want negative binary number so that's why
we added negative sign in front of DecimalBinaryConversion(-decimal)
*/
System.out.println("THE BINARY VALUE OF DECIMAL NUMBER "+decimal+" IS
"+binary);
}
else
{
binary=DecimalBinaryConversion(decimal);
System.out.println("THE BINARY VALUE OF DECIMAL NUMBER "+decimal+" IS
"+binary);
}
break;
default:
System.out.println("Invalid Choice");
break;
}
}
}
Question
PROGRAM TO CONVERT DECIMAL NUMBER TO OCTAL USING RECURSION.
ENTER A DECIMAL NUMBER10
THE OCTAL VALUE OF DECIMAL NUMBER 10 IS 12
Answer
import java.util.*;
public class DecimalToOctal
{
public static long DecimalOctalConversion(long dec)
{
if(dec==0)
{
return 0;
}
else
{
return (dec%8)+10*(DecimalOctalConversion(dec/8));
}
}
public static void main()
{
long decimal=0,octal=0;
Scanner sc=new Scanner(System.in);
System.out.print("ENTER A DECIMAL NUMBER");
decimal=sc.nextInt();
octal=DecimalOctalConversion(decimal);
System.out.println("THE OCTAL VALUE OF DECIMAL NUMBER "+decimal+" IS "+octal);
}
}
Question
PROGRAM TO CONVERT DECIMAL TO BINARY NUMBER USING RECURSION
ENTER DECIMAL NUMBER:125
THE BINARY VALUE OF DECIMAL NUMBER 125 IS 1111101
ENTER THE DECIMAL NUMBER:25
THE BINARY VALUE OF 25 IS 11001
Answer
import java.util.*;
public class DecimalToBinaryUsingRecursion
{
public static long DecimalBinaryConversion(long dec)
{
if(dec==0)
{
return 0;
}
else
{
return (dec%2)+10*(DecimalBinaryConversion(dec/2));
}
}
public static void main()
{
long decimal=0,binary=0;
Scanner sc=new Scanner(System.in);
System.out.print("ENTER DECIMAL NUMBER:");
decimal=sc.nextLong();
if(decimal< 0)
{
binary=-DecimalBinaryConversion(-decimal);
/*
DecimalBinaryConversion(-decimal) will return positive binary number
but we want negative binary number so thats why
we added negative sign in front of DecimalBinaryConversion(-decimal)
*/
System.out.println("THE BINARY VALUE OF DECIMAL NUMBER "+decimal+" IS "+binary);
}
else
{
binary=DecimalBinaryConversion(decimal);
System.out.println("THE BINARY VALUE OF DECIMAL NUMBER "+decimal+" IS "+binary);
}
}
}
Question
FIND THE FACTORIAL OF A NUMBER IN GIVEN RANGE USING RECURSION.
ENTER THE LOWER RANGE
1
ENTER THE UPPER RANGE
5
FACTORS OF 1-->1
FACTORS OF 2-->1 2
FACTORS OF 3-->1 3
FACTORS OF 4-->1 2 4
FACTORS OF 5-->1 5
Answer
import java.util.Scanner;
public class factors
{
long lowerRange=0,upperRange=0,i=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
public void printFactors(long num,long i)
{
if(i<=num)
{
if(num%i==0)
{
System.out.print(i+" ");
}
printFactors(num,i+1);
}
public void display()
{
for(i=lowerRange;i<=upperRange;i++)
{
System.out.print("FACTORS OF "+i+"-->");
printFactors(i,1);
System.out.println();
}
}
public static void main()
{
factors ob1=new factors();
ob1.accept();
ob1.display();
}
}
Question
FIND FACTOR OF A NUMBER USING RECURSION.
ENTER THE NUMBER
10
1 2 5 10
Answer
import java.util.Scanner;
public class factors
{
long num=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
public void printFactors(long i)
{
if(i<=num)
{
if(num%i==0)
{
System.out.print(i+" ");
}
printFactors(i+1);
}
public static void main()
{
factors ob1=new factors();
ob1.accept();
ob1.printFactors(1);
}
}
Question
FIND THE FACTORIAL OF A NUMBER USING RECURSION
ENTER THE NUMBER:5
FACTORIAL OF 5:120
Answer
import java.util.Scanner;
class FactorialOfNumber
{
public static int Factorial(int num)
{
if(num==1)
{
return 1;
}
else
{
return num*Factorial(num-1);
}
}
public static void main(String args[])
{
int num=0,fac=1;
Scanner sc=new Scanner(System.in);
System.out.print("ENTER THE NUMBER:");
num=sc.nextInt();
fac=Factorial(num);
System.out.println("Factorial of "+num+":"+fac);
}
Question
PROGRAM TO FIND HCF OF TWO NUMBERS USING RECURSION.
ENTER FIRST NUMBER
25
ENTER SECOND NUMBER
30
HCF OF 25 AND 30 IS 5
Answer
import java.util.Scanner;
public class HCF
{
public static int CalculateHCF(int p,int q)
{
if(q==0)
{
return p;
}
else
{
return CalculateHCF(q,p%q);
}
}
public static void main()
{
int firstNum=0,secondNum=0,hcf=0;
Scanner sc =new Scanner(System.in);
System.out.println("ENTER FIRST NUMBER");
firstNum=sc.nextInt();
System.out.println("ENTER SECOND NUMBER");
secondNum=sc.nextInt();
hcf=CalculateHCF(firstNum,secondNum);
System.out.println("HCF OF "+firstNum+" AND "+secondNum+" IS "+hcf);
}
}
Question
PROGRAM TO FIND LEAST COMMON MULTIPLE LCM OF TWO NUMBERS USING RECURSION.
ENTER FIRST NUMBER
25
ENTER SECOND NUMBER
30
LCM OF 25 AND 30 IS 60
Answer
import java.util.Scanner;
public class LCM
{
public static int CalculateLCM(int num1,int num2,int lcm)
{
if(lcm%num1==0 && lcm%num2==0)
{
return lcm;
}
else
{
return CalculateLCM(num1,num2,lcm+1);
}
}
public static void main()
{
int firstNum=0,secondNum=0,lcm=0;
Scanner sc =new Scanner(System.in);
System.out.println("ENTER FIRST NUMBER");
firstNum=sc.nextInt();
System.out.println("ENTER SECOND NUMBER");
secondNum=sc.nextInt();
lcm=CalculateLCM(firstNum,secondNum,1);
System.out.println("LCM OF "+firstNum+" AND "+secondNum+" IS "+lcm);
}
}
Question
PRINT FREQUENCY OF CONSONANTS IN GIVEN WORD USING RECURSION.
ENTER THE WORD
ABCDEFGHIJKLMNO
FREQUENCY OF CONSONANTS IN ABCDEFGHIJKLMNO IS 11
Answer
import java.util.Scanner;
public class frequencyConsonantsInWord
{
char ch=' ';
public int FrequencyOfConsonants(String wd,int i,int count)
{
if(i< wd.length())
{
ch=wd.charAt(i);
if(Character.isLetter(ch)==true)
{
if(ch!='a'&& ch!='e'&& ch!='i'&& ch!='o'&& ch!='u')
{
count++;
}
}
return FrequencyOfConsonants(wd,i+1,count);
}
else
{
return count;
}
}
public static void main()
{
String word="";
Scanner sc=new Scanner(System.in);
frequencyConsonantsInWord ob1=new frequencyConsonantsInWord();
System.out.println("ENTER THE WORD");
word=sc.next();
word=word.toLowerCase();
System.out.print("FREQUENCY OF CONSONANTS IN "+word+" IS
"+ob1.FrequencyOfConsonants(word,0,0));
}
}
Question
FIND FREQUENCY OF DIGITS IN A NUMBER USING RECURSION
ENTER THE NUMBER
123456789123456789
FREQUENCY OF DIGITS
0:0
1:2
2:2
3:2
4:2
5:2
6:2
7:2
8:2
9:2
Answer
import java.util.Scanner;
public class frequencyOfDigits
{
public static long CountDigits(long num,int digit,long noOfDigits)
{
if(num==0)
{
return noOfDigits;
}
else
{
if(num%10==digit)
{
noOfDigits++;
}
return CountDigits(num/10,digit,noOfDigits);
}
}
public static void main()
{
int i=0;
long num=0,count=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
System.out.println("Frequency of digits");
for(i=0;i<=9;i++)
{
count=CountDigits(num,i,0);
System.out.println(i+":"+count);
}
}
}
Question
FREQUENCY OF NON-PALINDROME WORDS IN GIVEN SENTENCE USING RECURSION
ENTER THE SENTENCE
MOM AND DAD ARE NOT AT HOME
FREQUENCY OF NON-PALINDROME WORDS IN GIVEN SENTENCE:5
Answer
import java.util.Scanner;
public class FrequencyNonPalindromeWordsInSentence
{
public static String FindReverse(String wd,int i)
{
if(i>=0)
{
return wd.charAt(i)+ FindReverse(wd,i-1);
}
else
{
return "";
}
}
public static void main()
{
int i=0,count=0;
char ch=' ';
String sen="",word="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE SENTENCE");
sen=sc.nextLine();
sen=sen+" ";
for(i=0;i< sen.length();i++)
{
ch=sen.charAt(i);
if(ch==' ')
{
if(word.equals(FindReverse(word,word.length()-1))==false)
{
count++;
}
word="";
}
else
{
word=word+ch;
}
}
System.out.println("FREQUENCY OF NON-PALINDROME WORDS IN GIVEN
SENTENCE:"+count);
}
}
Question
FREQUENCY OF PALINDROME WORDS IN A GIVEN SENTENCE.
ENTER THE SENTENCE
MOM AND DAD ARE NOT AT HOME
FREQUENCY OF PALINDROME WORDS IN GIVEN SENTENCE:2
Answer
import java.util.Scanner;
public class palindromeWordsInSentence
{
public static void main(String[] args)
{
String sen="",wd="",wd1="";
char ch=' ';
int i=0,len=0,count=0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter a sentence:");
sen = sc.nextLine();
sen=sen+" ";
len=sen.length();
for(i=0;i< len;i++)
{
ch=sen.charAt(i);
if(ch==' ')
{
if(wd.equalsIgnoreCase(wd1)==true)
{
count=count+1;
}
wd1="";
wd="";
}
else
{
wd=wd+ch;
wd1=ch+wd1;
}
}
System.out.println("Frequency of Palindrome words in given sentence:"+count);
}
}
Question
FREQUENCY OF PALINDROME WORDS IN A GIVEN SENTENCE USING RECURSION.
ENTER THE SENTENCE
MOM AND DAD ARE NOT AT HOME
FREQUENCY OF PALINDROME WORDS IN GIVEN SENTENCE:2
Answer
import java.util.Scanner;
public class FrequencyPalindromeWordsInSentence
{
public static String FindReverse(String wd,int i)
{
if(i>=0)
{
return wd.charAt(i)+ FindReverse(wd,i-1);
}
else
{
return "";
}
}
public static void main()
{
int i=0,count=0,len=0;
char ch=' ';
String sen="",word="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE SENTENCE");
sen=sc.nextLine();
sen=sen+" ";
len=sen.length();
for(i=0;i< len;i++)
{
ch=sen.charAt(i);
if(ch==' ')
{
if(word.equals(FindReverse(word,word.length()-1))==true)
{
count++;
}
word="";
}
else
{
word=word+ch;
}
}
System.out.println("FREQUENCY OF PALINDROME WORDS IN GIVEN SENTENCE:"+count);
}
}
Question
PRINT FREQUENCY OF VOWELS IN GIVEN WORD USING RECURSION
ENTER THE WORD
ABCDEFGHIJKLMNO
FREQUENCY OF VOWELS IN ABCDEFGHIJKLMNO IS 4
Answer
import java.util.Scanner;
public class frequencyVowelsInWord
{
char ch=' ';
public int FrequencyOfVowels(String wd,int i,int count)
{
if(i< wd.length())
{
ch=wd.charAt(i);
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')
{
count++;
}
return FrequencyOfVowels(wd,i+1,count);
}
else
{
return count;
}
}
public static void main()
{
String wd="";
Scanner sc=new Scanner(System.in);
frequencyVowelsInWord ob1=new frequencyVowelsInWord();
System.out.println("ENTER THE WORD");
wd=sc.next();
wd=wd.toLowerCase();
System.out.print("FREQUENCY OF VOWELS IN "+wd+" IS "+ob1.FrequencyOfVowels(wd,0,0));
}
Question
PRINT ARMSTRONG NUMBER IN A GIVEN RANGE USING RECURSION.
A POSITIVE NUMBER IS CALLED ARMSTRONG NUMBER IF THE SUM OF ITS OWN DIGITS EACH
RAISED TO THE POWER OF THE NUMBER OF DIGITS IS EQUAL TO THE NUMBER.
ENTER THE LOWER RANGE
1
ENTER THE UPPER RANGE
50
ARMSTRONG NUMBERS BETWEEN 1 AND 50
123456789
Answer
import java.util.Scanner;
public class ArmstrongNumber
{
public static int SumOfDigit(int num,int i)
{
if(num==0)
{
return 0;
}
else
{
return (int)Math.pow(num%10,i)+SumOfDigit(num/10,i);
}
}
public static void main()
{
int sum=0,noOfDigits=0,lowerRange=0,upperRange=0,i=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextInt();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextInt();
System.out.println("ARMSTRONG NUMBERS BETWEEN "+lowerRange+" AND
"+upperRange);
for(i=lowerRange;i<=upperRange;i++)
{
noOfDigits=Integer.toString(i).length();
sum=SumOfDigit(i,noOfDigits);
if(sum==i)
{
System.out.print(i+" ");
}
}
}
}
Question
PRINT DISARIUM NUMBER IN A GIVEN RANGE USING RECURSION.
(A NUMBER IS SAID TO BE THE DISARIUM NUMBER WHEN THE SUM OF ITS DIGIT RAISED TO THE
POWER OF THEIR RESPECTIVE POSITIONS IS EQUAL TO THE NUMBER ITSELF.)
11 + 72 + 53 = 1 + 49 + 125 = 175
ENTER THE LOWER RANGE
100
ENTER THE UPPER RANGE
500
135 175
Answer
import java.util.Scanner;
public class disariumNumber
{
public static int CountDigits(long num,int count)
{
if(num==0)
{
return count;
}
else
{
count++;
return CountDigits(num/10,count);
}
}
public static long CalculateSum(long num,int totalDigits)
{
if(num==0)
{
return 0;
}
else
{
return (long)(Math.pow(num%10,totalDigits))+CalculateSum(num/10,totalDigits-1);
}
}
public static void main()
{
long lowerRange=0,upperRange=0,sum=0,i=0;
int FrequencyOfDigits=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
for(i=lowerRange;i<=upperRange;i++)
{
FrequencyOfDigits=CountDigits(i,0);
sum=CalculateSum(i,FrequencyOfDigits);
if(sum==i)
{
System.out.print(i+" ");
}
}
}
}
Question
FIND THE FACTORIAL OF A NUMBER IN A GIVEN RANGE USING RECURSION
ENTER THE LOWER NUMBER:1
ENTER THE UPPER NUMBER:25
FACTORIAL OF NUMBERS
1:1
2:2
3:6
4:24
5:120
6:720
7:5040
8:40320
9:362880
10:3628800
11:39916800
12:479001600
13:6227020800
14:87178291200
15:1307674368000
16:20922789888000
17:355687428096000
18:6402373705728000
19:121645100408832000
20:2432902008176640000
21:51090942171709440000
22:1124000727777607680000
23:25852016738884976640000
24:620448401733239439360000
25:15511210043330985984000000
Answer
import java.util.Scanner;
import java.math.BigInteger;
class FactorialOfNumber
{
public static BigInteger Factorial(long num)
{
if(num==1)
{
return BigInteger.valueOf(1);
}
else
{
return Factorial(num-1).multiply(BigInteger.valueOf(num));
}
}
public static void main(String args[])
{
long lowerRange=0,upperRange=0,i=0;
BigInteger fac=new BigInteger("1");
Scanner sc=new Scanner(System.in);
System.out.print("ENTER THE LOWER NUMBER:");
lowerRange=sc.nextLong();
System.out.print("ENTER THE UPPER NUMBER:");
upperRange=sc.nextLong();
System.out.println("Factorial of numbers");
for(i=lowerRange;i<=upperRange;i++)
{
if(i>0)
{
fac=Factorial(i);
System.out.println(i+":"+fac);
}
}
}
}
Question
PROGRAM TO PRINT FIBONACCI NUMBERS FROM 1 TO N USING RECURSION WITHOUT USING A
THIRD VARIABLE.
ENTER N:
13
FIBONACCI NUMBERS FROM 1 TO 13:
1
1
2
3
5
8
13
Answer
import java.util.Scanner;
public class fibonacciUsingRecursion
{
int n=0;
public void Printfibonacci(int a,int b)
{
if(b>n)
{
return;
}
else
{
System.out.println(b);
b=a+b;
a=b-a;
Printfibonacci(a,b);
}
}
public static void main()
{
fibonacciUsingRecursion ob1=new fibonacciUsingRecursion();
Scanner sc=new Scanner(System.in);
System.out.println("Enter N:");
ob1.n=sc.nextInt();
System.out.println("Fibonacci numbers from 1 to "+ob1.n+":");
ob1.Printfibonacci(0,1);
}
}
Question
PRINT FREQUENCY OF VOWELS IN GIVEN SENTENCE USING RECURSION
ENTER THE SENTENCE
QUICK BROWN FOX JUMPED OVER THE LAZY DOG
FREQUENCY OF VOWELS IN QUICK BROWN FOX JUMPED OVER THE LAZY DOG IS 11
Answer
import java.util.Scanner;
public class frequencyVowelsInSentence
{
char ch=' ';
public int FrequencyOfVowels(String sen,int i,int count)
{
if(i< sen.length())
{
ch=sen.charAt(i);
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')
{
count++;
}
return FrequencyOfVowels(sen,i+1,count);
}
else
{
return count;
}
}
public static void main()
{
String sen="";
Scanner sc=new Scanner(System.in);
frequencyVowelsInSentence ob1=new frequencyVowelsInSentence();
System.out.println("ENTER THE SENTENCE");
sen=sc.nextLine();
sen=sen.toLowerCase();
System.out.print("FREQUENCY OF VOWELS IN "+sen+" IS
"+ob1.FrequencyOfVowels(sen,0,0));
}
Question
PRINT KRISHNAMURTHY NUMBER(ALSO CALLED STRONG NUMBER) IN GIVEN RANGE USING
RECURSION
A KRISHNAMURTHY NUMBER IS A NUMBER WHOSE SUM OF THE FACTORIAL OF DIGITS IS EQUAL
TO THE NUMBER ITSELF.
EG,
145=1!+4!+5!
=1+24+120
=145
HENCE, 145 IS KRISHNAMURTHY NUMBER
ENTER THE LOWER NUMBER
1
ENTER THE UPPER NUMBER
40585
KRISNAMURTHY NUMBER(S) BETWEEN 1 AND 40585:
1 2 145 40585
Answer
import java.util.Scanner;
public class KrishnamurthyNumber
{
long lowerRange=0,upperRange=0,temp=0,i=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER NUMBER");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER NUMBER");
upperRange=sc.nextLong();
public static long Factorial(long n)
{
if(n==0)
{
return 1;
}
else
{
return n*Factorial(n-1);
}
}
public void checkKrishnamurthy()
{
long sum=0;
System.out.println("KRISNAMURTHY NUMBER(S) BETWEEN "+lowerRange+" AND
"+upperRange+":");
for(i=lowerRange;i<=upperRange;i++)
{
temp=i;
sum=0;
while(temp>0)
{
sum=sum+Factorial(temp%10);
temp/=10;
}
if(sum==i)
{
System.out.print(i+ " ");
}
public static void main()
{
KrishnamurthyNumber ob1=new KrishnamurthyNumber();
ob1.accept();
ob1.checkKrishnamurthy();
}
}
Question
PRINT MAGIC NUMBER IN GIVEN RANGE USING RECURSION
IF THE SUM OF ITS DIGITS RECURSIVELY ARE CALCULATED TILL A SINGLE DIGIT. IF THAT
SINGLE DIGIT IS 1 THEN THE NUMBER IS A MAGIC NUMBER.
EG,
28=2+8=10
ADDING DIGITS OF 28 WE GET 10,
10=1+0=1
ADDING DIGITS OF 10 WE GET 1
HENCE, 28 IS MAGIC NUMBER
Answer
import java.util.Scanner;
public class magicNumber
{
long lowerRange=0,upperRange=0,temp=0,i=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER NUMBER");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER NUMBER");
upperRange=sc.nextLong();
public long CalculateSumOfDigits(long n)
{
if(n==0)
{
return 0;
}
else
{
return n%10 + CalculateSumOfDigits(n/10);
}
}
public void isMagicNumber()
{
System.out.println("MAGIC NUMBER(S) BETWEEN "+lowerRange +" AND "+upperRange+":");
for(i=lowerRange;i<=upperRange;i++)
{
temp=i;
while(temp>9)
{
temp=CalculateSumOfDigits(temp);
}
if(temp==1)
{
System.out.print(i+ " ");
}
}
public static void main()
{
magicNumber ob1=new magicNumber();
ob1.accept();
ob1.isMagicNumber();
}
}
Question
PRINT NON-PALINDROME WORDS IN GIVEN SENTENCE USING RECURSION
ENTER THE SENTENCE
MOM AND DAD ARE NOT AT HOME
NON-PALINDROME WORDS IN GIVEN SENTENCE:
AND
ARE
NOT
AT
HOME
Answer
import java.util.Scanner;
public class NonPalindromeWordsInSentence
{
public static String FindReverse(String wd,int i)
{
if(i>=0)
{
return wd.charAt(i)+ FindReverse(wd,i-1);
}
else
{
return "";
}
}
public static void main()
{
int i=0;
char ch=' ';
String sen="",word="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE SENTENCE");
sen=sc.nextLine();
sen=sen+" ";
System.out.println("NON-PALINDROME WORDS IN GIVEN SENTENCE:");
for(i=0;i< sen.length();i++)
{
ch=sen.charAt(i);
if(ch==' ')
{
if(word.equals(FindReverse(word,word.length()-1))==false)
{
System.out.println(word);
}
word="";
}
else
{
word=word+ch;
}
}
}
}
Question
PRINT PALINDROME NUMBER IN GIVEN RANGE USING RECURSION
ENTER THE LOWER RANGE
1
ENTER THE UPPER RANGE
50
PALINDROME NUMBER BETWEEN 1 AND 50:
1 2 3 4 5 6 7 8 9 11 22 33 44
Answer
import java.util.Scanner;
public class PalindromeNumber
{
public static long FindReverse(long num,long rev)
{
if(num==0)
{
return rev;
}
else
{
rev=rev*10+num%10;
return FindReverse(num/10,rev);
}
}
public static void main()
{
long lowerRange=0,upperRange=0,reverse=0,i=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
System.out.println("PALINDROME NUMBER BETWEEN "+lowerRange+" AND
"+upperRange+":");
for(i=lowerRange;i<=upperRange;i++)
{
reverse=FindReverse(i,0);
if(i==reverse)
{
System.out.print(i+" ");
}
}
}
}
Question
PRINT PALINDROME WORDS IN GIVEN SENTENCE USING RECURSION
ENTER THE SENTENCE
MOM AND DAD ARE NOT AT HOME.
PALINDROME WORDS IN GIVEN SENTENCE:
MOM
DAD
Answer
import java.util.Scanner;
public class PalindromeWordsInSentence
{
public static String FindReverse(String wd,int i)
{
if(i>=0)
{
return wd.charAt(i)+ FindReverse(wd,i-1);
}
else
{
return "";
}
}
public static void main()
{
int i=0;
char ch=' ';
String sen="",word="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE SENTENCE");
sen=sc.nextLine();
sen=sen+" ";
System.out.println("PALINDROME WORDS IN GIVEN SENTENCE:");
for(i=0;i< sen.length();i++)
{
ch=sen.charAt(i);
if(ch==' ')
{
if(word.equals(FindReverse(word,word.length()-1))==true)
{
System.out.println(word);
}
word="";
}
else
{
word=word+ch;
}
}
}
}
Question
PRINT PRIME NUMBER IN GIVEN RANGE USING RECURSION
ENTER LOWER RANGE:1
ENTER UPPER RANGE:50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
Answer
import java.util.Scanner;
public class primeNumber
{
public static boolean checkPrime(long n,long i)
{
if(n<2)
{
return false;
}
/*Check if i is greater than n/2 because if any number is divisible by another number till another
number is less than or equal to num/2*/
else if(i>(n/2))
{
return true;
}
else if(n%i==0)
{
return false;
}
else
{
return checkPrime(n,(i+1));
}
}
public static void main()
{
long lowerRange=0,upperRange=0,i=0;
Scanner sc=new Scanner(System.in);
System.out.print("ENTER LOWER RANGE:");
lowerRange=sc.nextLong();
System.out.print("ENTER UPPER RANGE:");
upperRange=sc.nextLong();
System.out.println("PRIME NUMBERS BETWEEN "+lowerRange+" AND "+upperRange+":");
for(i=lowerRange;i<=upperRange;i++)
{
if(checkPrime(i,2)==true)
{
System.out.print(i+" ");
}
}
}
Question
PRINT PRIME PALINDROME NUMBERS IN GIVEN RANGE USING RECURSION
A PRIME PALINDROME INTEGER IS A POSITIVE INTEGER (WITHOUT LEADING ZEROES) WHICH IS
PRIME AS WELL AS A PALINDROME.
ENTER THE LOWER RANGE
1
ENTER THE UPPER RANGE
600
PRIME PALINDROME NUMBER BETWEEN 1 AND 600:
2 3 5 7 11 101 131 151 181 191 313 353 373 383
Answer
import java.util.Scanner;
public class PrimePalindromeNumber
{
long lowerRange=0,upperRange=0;
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
}
public long FindReverse(long num,long reverse)
{
if(num==0)
{
return reverse;
}
else
{
reverse=reverse*10+num%10;
return FindReverse(num/10,reverse);
}
}
public boolean checkPrime(long n,long i)
{
if(n<2)
{
return false;
}
/*Check if i is greater than n/2 because if any number is divisible by another number till another
number is less than or equal to num/2*/
else if(i>(n/2))
{
return true;
}
else if(n%i==0)
{
return false;
}
else
{
return checkPrime(n,(i+1));
}
}
public void display()
{
long i=0;
System.out.println("Prime Palindrome number between "+lowerRange+" and "+upperRange+":");
for(i=lowerRange;i<=upperRange;i++)
{
if(checkPrime(i,2)==true && i==FindReverse(i,0))
{
System.out.print(i+" ");
}
}
}
public static void main(String args[])
{
PrimePalindromeNumber ob1=new PrimePalindromeNumber();
ob1.accept();
ob1.display();
}
}
Question
PRINT PRIME PALINDROME NUMBER IN GIVEN RANGE
A PRIME PALINDROME INTEGER IS A POSITIVE INTEGER (WITHOUT LEADING ZEROES) WHICH IS
PRIME AS WELL AS A PALINDROME.
ENTER THE LOWER RANGE
1
ENTER THE UPPER RANGE
200
2 3 5 7 11 101 131 151 181 191
Answer
import java.util.Scanner;
public class PrimePalindromeNumber
{
public static void main(String args[])
{
long lowerRange=0,upperRange=0,temp=0,i=0,reverse=0,j=0;
int flag=0;
boolean isPrime=false,isPalindrome=false;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
for(i=lowerRange;i<=upperRange;i++)
{
temp=i;
flag=0;
isPrime=false;
isPalindrome=false;
if(temp< 2)
{
isPrime=false;
}
else
{
/*for loop runs till "temp/2" because number is divisible perfected till half the
number*/
for(j=2;j<=temp/2;j++)
{
/*Checking if number is divisible by j.*/
if(temp%j==0)
{
isPrime=false;
flag=1;
break;
}
}
if(flag==0)
{
isPrime=true;
}
}
temp=i;
reverse=0;
while(temp>0)
{
reverse=reverse*10+temp%10;
temp=temp/10;
}
if(reverse==i)
{
isPalindrome=true;
}
else
{
isPalindrome=false;
}
if(isPrime==true && isPalindrome==true)
{
System.out.print(i+" ");
}
}
}
Question
PRINT REVERSE OF A NUMBER USING RECURSION
ENTER THE NUMBER
5124
REVERSE OF 5124 IS 4215
Answer
import java.util.Scanner;
public class Reverse
{
public static long FindReverse(long num,long rev)
{
if(num==0)
{
return rev;
}
else
{
rev=rev*10+num%10;
return FindReverse(num/10,rev);
}
}
public static void main()
{
long num=0,reverse=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE NUMBER");
num=sc.nextLong();
reverse=FindReverse(num,0);
System.out.println("Reverse of "+num+" is "+reverse);
}
Question
PRINT REVERSE OF GIVEN SENTENCE USING RECURSION
ENTER THE SENTENCE
THE RAIN STOPPED
REVERSE OF SENTENCE THE RAIN STOPPED IS DEPPOTS NIAR EHT
Answer
import java.util.Scanner;
public class ReverseOfSentence
{
public static String FindReverse(String sen,int i)
{
if(i>=0)
{
return sen.charAt(i)+ FindReverse(sen,i-1);
}
else
{
return "";
}
}
public static void main()
{
String sentence="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE SENTENCE");
sentence=sc.nextLine();
System.out.print("REVERSE OF SENTENCE "+sentence+" IS
"+FindReverse(sentence,sentence.length()-1));
}
Question
PRINT REVERSE OF GIVEN WORD USING RECURSION
ENTER THE WORD
RAIN
REVERSE OF WORD RAIN IS NIAR
Answer
import java.util.Scanner;
public class ReverseOfWord
{
public static String FindReverse(String wd,int i)
{
if(i>=0)
{
return wd.charAt(i)+ FindReverse(wd,i-1);
}
else
{
return "";
}
}
public static void main()
{
String word="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE WORD");
word=sc.next();
System.out.print("REVERSE OF WORD "+word+" IS
"+FindReverse(word,word.length()-1));
}
Question
PRINT REVERSE OF A NUMBER IN GIVEN RANGE USING RECURSION
ENTER THE LOWER RANGE
25
ENTER THE UPPER RANGE
35
REVERSE OF 25 IS 52
REVERSE OF 26 IS 62
REVERSE OF 27 IS 72
REVERSE OF 28 IS 82
REVERSE OF 29 IS 92
REVERSE OF 30 IS 3
REVERSE OF 31 IS 13
REVERSE OF 32 IS 23
REVERSE OF 33 IS 33
REVERSE OF 34 IS 43
REVERSE OF 35 IS 53
Answer
import java.util.Scanner;
public class Reverse
{
public static long findReverse(long num,long rev)
{
if(num==0)
{
return rev;
}
else
{
rev=rev*10+num%10;
return findReverse(num/10,rev);
}
}
public static void main()
{
long lowerRange=0,upperRange=0,reverse=0,i=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
for(i=lowerRange;i<=upperRange;i++)
{
reverse=findReverse(i,0);
System.out.println("Reverse of "+i+" is "+reverse);
}
}
}
Question
PRINT TWIN PRIME NUMBERS IN GIVEN RANGE USING RECURSION
(TWIN PRIMES ARE THE PRIME NUMBERS WITH A DIFFERENCE OF 2.)
EXAMPLE: (3 AND 5),(5 AND 7),(11 AND 13) ETC
ENTER THE LOWER VALUE:-10
ENTER THE UPPER VALUE:90
TWIN PRIME NUMBERS BETWEEN -10 AND 90 :
(3,5)
(5,7)
( 11 , 13 )
( 17 , 19 )
( 29 , 31 )
( 41 , 43 )
( 59 , 61 )
( 71 , 73 )
Answer
import java.util.Scanner;
public class TwinPrimeInGivenRangeUsingRecursion
{
public static boolean isPrime(int n,int i)
{
if(n<=1)
{
return false;
}
else if(i==n)
{
return true;
}
else if(n%i==0)
{
return false;
}
else
{
return isPrime(n,(i+1));
}
}
public static void main()
{
int lowerRange=0,upperRange=0,difference=0,i=0,firstNumber=0,secondNumber=0;
boolean isFirstNumberPrime=false,isSecondNumberPrime=false;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER LOWER VALUE:");
lowerRange=sc.nextInt();
System.out.println("ENTER UPPER VALUE:");
upperRange=sc.nextInt();
System.out.println("Twin Prime numbers between "+lowerRange+" and
"+upperRange+":");
for(i=lowerRange;i<=upperRange-2;i++)
{
firstNumber=i;
secondNumber=i+2;
isFirstNumberPrime=isPrime(firstNumber,2);
isSecondNumberPrime=isPrime(secondNumber,2);
if(isFirstNumberPrime==true)
{
if(isSecondNumberPrime==true)
{
System.out.println("("+firstNumber+","+secondNumber+")");
}
}
}
}
Question
PRINT UNIQUE NUMBER IN GIVEN RANGE USING RECURSION.
( A UNIQUE NUMBER IS A POSITIVE INTEGER (WITHOUT LEADING ZEROS) WITH NO DUPLICATE
DIGITS. FOR EXAMPLE, 7, 135, 214, 5243 ARE ALL UNIQUE NUMBERS WHEREAS 33, 3121, 200
ARE NOT.)
Answer
import java.util.Scanner;
public class UniqueNumber
{
public static int CountDigits(long num,int digit,int noOfDigits)
{
if(num==0)
{
return noOfDigits;
}
else
{
if(num%10==digit)
{
noOfDigits++;
}
return CountDigits(num/10,digit,noOfDigits);
}
}
public static void main()
{
int flag=0,count=0,j=0;
long lowerRange=0,upperRange=0,i=0;
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE LOWER RANGE");
lowerRange=sc.nextLong();
System.out.println("ENTER THE UPPER RANGE");
upperRange=sc.nextLong();
for(i=lowerRange;i<=upperRange;i++)
{
flag=0;
for(j=0;j<=9;j++)
{
count=CountDigits(i,j,0);
if(count>1)
{
flag=1;
break;
}
}
if(flag==0)
{
System.out.print(i+" ");
}
}
}
Question
PRINT WORDS IN GIVEN SENTENCE USING RECURSION
ENTER THE SENTENCE
MOM AND DAD ARE NOT AT HOME
WORDS IN SENTENCE
MOM
AND
DAD
ARE
NOT
AT
HOME
Answer
import java.util.Scanner;
public class PrintWordsInSentence
{
String wd="";
public void PrintWords(String sen,int i)
{
if(i< sen.length())
{
if(sen.charAt(i)==' ')
{
System.out.println(wd+" ");
wd="";
}
else
{
wd=wd+sen.charAt(i);
}
PrintWords(sen,i+1);
}
}
public static void main()
{
int i=0;
char ch=' ';
String sen="",word="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE SENTENCE");
sen=sc.nextLine();
sen=sen+" ";
PrintWordsInSentence ob1=new PrintWordsInSentence();
System.out.println("WORDS IN SENTENCE");
ob1.PrintWords(sen,0);
}
}
Question
PROGRAM TO CONVERT BINARY TO DECIMAL NUMBER USING RECURSION
ENTER THE BINARY NUMBER:111001
THE DECIMAL VALUE OF 111001 IS 57
ENTER THE BINARY NUMBER:-111001
THE DECIMAL VALUE OF 111001 IS -57
ENTER THE BINARY NUMBER:110002
INVALID BINARY NUMBER
Answer
import java.util.Scanner;
public class BinaryToDecimal
{
public static boolean isBinaryNumbervalid(long bin)
{
while(bin>0)
{
if(bin%10>1)
{
System.out.println("Invalid binary number");
return false;
}
bin=bin/10;
}
return true;
}
public static long BinaryToDecimalConversion(long bin,int power)
{
if(bin==0)
{
return 0;
else
{
return ((bin%10)*(long)Math.pow(2,power))+BinaryToDecimalConversion(bin/10,power+1);
}
}
public static void main()
{
long decimal=0,binary=0;
Scanner sc=new Scanner(System.in);
System.out.print("ENTER BINARY NUMBER:");
binary=sc.nextLong();
if(binary<0)//negative binary number
{
if(isBinaryNumbervalid(-binary)==true)
{
decimal=-BinaryToDecimalConversion(-binary,0);
/*
BinaryToDecimalConversion(-binary,0) will return positive decimal number
but we want negative decimal number so thats why
we added negative sign in front of BinaryToDecimalConversion(-binary,0)
*/
System.out.println("THE DECIMAL VALUE OF BINARY "+binary+" IS
"+decimal);
}
}
else
{
if(isBinaryNumbervalid(binary)==true)
{
decimal=BinaryToDecimalConversion(binary,0);
System.out.println("THE DECIMAL VALUE OF BINARY "+binary+" IS
"+decimal);
}
}
}
}
Question
PRINT REVERSE OF GIVEN SENTENCE WHILE PRESERVING POSITIONS OF WORD USING
RECURSION
ENTER THE SENTENCE
THE RAIN STOPPED
REVERSE OF SENTENCE THE RAIN STOPPED IS EHT NIAR EPPOTS
Answer
import java.util.Scanner;
public class ReverseOfSentence
{
public static String FindReverse(String wd,int i)
{
if(i>=0)
{
return wd.charAt(i)+ FindReverse(wd,i-1);
}
else
{
return "";
}
}
public static void main()
{
int i=0;
char ch=' ';
String sen="",word="",reverseSen="";
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE SENTENCE");
sen=sc.nextLine();
for(i=0;i< sen.length();i++)
{
ch=sen.charAt(i);
if(ch==' '||i==sen.length()-1)
{
reverseSen=reverseSen+FindReverse(word,word.length()-1)+" ";
word="";
}
else
{
word=word+ch;
}
}
System.out.print("REVERSE OF SENTENCE "+sen+" IS "+reverseSen);
}
Question
PRINT SUM OF FIRST N TH NATURAL NUMBER USING RECURSION
ENTER NTH TERM 10
SUM OF FIRST 10 NATURAL NUMBER: 55
Answer
import java.util.Scanner;
public class AddFirstNNaturalNumber
{
public static int Sum(int num)
{
if(num==0)
{
return 0;
}
else
{
return num+Sum(num-1);
}
}
public static void main(String args[])
{
int num=0,sum=0;
Scanner sc=new Scanner(System.in);
System.out.print("ENTER Nth TERM ");
num=sc.nextInt();
sum=Sum(num);
System.out.println("Sum of first "+num+" NATURAL NUMBER: "+sum);