Sunny Number in JAVA

In this tutorial, we will learn about Sunny numbers and create a Java program to check for sunny numbers. We will see two java examples on Sunny Number.

What is Sunny Number?

A number N is said to be a sunny number if the number next to the given number (N+1) is a perfect square.

Example: Let us take a Number 8, then the next number is 8+1=9 and as 3 is a square root of 9, hence 8 is a sunny Number.

Another example, let the number be 5, then 5+1=6, that has no square roots, hence 5 is not a sunny Number.


Java Program to Check Whether the Number is Sunny Number or Not.

The program uses Math.sqrt() function that is an inbuilt function in Java.

import java.util.Scanner;

public class SunnyNumber
{
  // Method to check for Sunny
  public static boolean isSunnyFunc(int n)
  {
    if (Math.sqrt(n + 1) % 1 == 0)
      return true;
    else return false;
  }

  // main method
  public static void main(String[] args)
  {
    int num = 0;
    boolean result = false;

    Scanner scan = new Scanner(System.in);

    //taking input
    System.out.print("Enter the number: ");
    num = scan.nextInt();

    // calling calculation Function by passing number
    result = isSunnyFunc(num);

    //print the result
    if (result)
      System.out.println(num + " is a Sunny number");
    else
      System.out.println(num + " is not a Sunny number");

  }
}

Output:

Enter the number: 80
80 is a Sunny number

//Another Execution
Enter the number: 6
6 is not a Sunny number


Java Program to find all the Sunny Number between a given Range

import java.util.Scanner;

public class SunnyNumber
{
  // Method to check for Sunny
  public static boolean isSunnyFunc(int n)
  {
    if (Math.sqrt(n + 1) % 1 == 0)
      return true;
    else return false;
  }

  // main method
  public static void main(String[] args)
  {
    int lrNum, upNum;
    boolean result = false;

    Scanner scan = new Scanner(System.in);

    // take input from end-user
    System.out.print("Enter the lower range: ");
    lrNum = scan.nextInt();
    System.out.print("Enter the upper range: ");
    upNum = scan.nextInt();

    System.out.println("The Sunny number between " + lrNum + " and " + upNum + " are: ");

    for (int i = lrNum; i <= upNum; i++)
    {
      if (isSunnyFunc(i))
        System.out.print(i + " ");
    }
  }
}

Output:

Enter the lower range: 1
Enter the upper range: 100
The Sunny number between 1 and 100 are:
3 8 15 24 35 48 63 80 99

Hope this article on the java program for the sunny number was helpful.