Skip to main content

Abundant Number Program Solution (Java) | Recursive Technique | ISC level

 /**

 * Write a Java program to print all the possible Abundant numbers (integers) between

M and N ( 1 > M,N < 100000) .

In number theory, an abundant number is a number for which the sum of its proper

divisors are greater than the number itself.

The first few abundant numbers are:

12, 18, 20, 24, 30, 36, 40, 42, 48, 54, 56, 60, 66, 70, 72, 78, 80, 84, 88, 90, 96, 100, 102,...

The integer 12 is the first abundant number. Its proper divisors are 1, 2, 3, 4 and 6

for a total of 16.

 */

import java.util.*;

public class AbundantNum

{

    public static int factors(int x, int f) //recursive function to find the sum of factors of the number

    {

        if(x==f)

            return 0;

        else if(x%f==0)

            return f+factors(x,f+1);

        else

            return factors(x,f+1);

    }


    public static void main()

    {

        Scanner sc=new Scanner(System.in);

        System.out.print("\nEnter the lower limit : ");

        int M=sc.nextInt();

        System.out.print("\nEnter the upper limit : ");

        int N=sc.nextInt();

        if(M>1 && M<100000 && N>1 && N<100000)

        {

            for(int i=M;i<=N;i++)

            {

                if(factors(i,1)>i)

                    System.out.print(i+", ");

            }

        }

        else

        {

            System.out.println("OUT OF RANGE");

            main();

        }

    } // end of main

} // end of class

Comments

Popular posts from this blog

Harshad Number | C programming

  Q.10     WAP in C/ C++/ java to check whether a number is a  Harshad Number  or not.  In recreational mathematics, a Harshad number in a given number base is an integer that is divisible by the sum of its digits when written in that base.         Example: Number 200 is a Harshad Number because the sum of digits 2 and 0 and 0 is 2(2+0+0) and 200 is divisible by 2. Number 171 is a Harshad Number because the sum of digits 1 and 7 and 1 is 9(1+7+1) and 171 is divisible by 9.     Solution :  #include <stdio.h> int   sumofdigits ( int  x)  // function to compute sum of digits {      int   sum = 0 ;      while (x > 0 )     {          sum += x % 10 ;         x = x / 10 ;     }      return   sum ; } void   main () {      int   n ,  sod ;      printf ( " \n Enter any positive number : " );      scanf ( " %d " ,  & n );      if  ( n < 0 )     {          printf ( " \n Invalid input! Enter the value again -->" );          main ();  // calls the m

Happy Number Solution | Recursion

  /**  * Write a Java program to find and print the Happy numbers between m and n. Happy number: Starting with any positive integer, replace the number by the sum of the squares of its digits,  and repeat the process until the number equals 1, or it loops endlessly in a cycle which does not include 1. Example: 19 is a happy number 1^2 + 9^2=82 8^2 + 2^2=68 6^2 + 8^2=100 1^2 + 0^2 + 02=1 The first few happy numbers are 1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100, ...  */ import java.util.*; public class HappyNum {     public static int digitSq( int x) // recursive function to find square of digits of the number     {         if(x<10)         return x*x;         else         return (x%10)*(x%10) + digitSq(x/10);     } // end of digitSq()          public static boolean isHappy(int num, int i)  // recursive function to check whether the no. is happy or not     {         //System.out.println(num);         if(num==1)         return true;         else i