Java 如何检查一个数是否是一个Pronic数

Java 如何检查一个数是否是一个Pronic数

Pronic数可以定义为当它是两个连续整数的乘积时的一个数值。

在数学上,Pronic数的形式为n(n+1)。

它也被称为异差数、长方形数或矩形数。

为了向您展示一些示例

示例1

输入的数字是12

让我们使用Pronic数的逻辑来检查它-

4 * 3 = 12, where 3 and 4 are two consecutive numbers.

因此,12是一个有趣的数。

示例2

输入的数是30

让我们使用有趣数的逻辑来检查它 –

5 * 6 = 30, where 5 and 6 are two consecutive numbers.

因此,30是一个棱形数。

示例3

输入的数是81

让我们使用棱形数的逻辑来验证它-

9 * 9 = 81, where 9 and 9 are not two consecutive numbers.

因此,81不是一个pronic数。

一些其他的pronic数的示例包括0、2、42、56、90、110、380、420、462等。

注意

根据维基百科

  • 唯一的素数pronic数是2。

  • 所有的pronic数都是偶数。

语法

我们可以使用java.lang包中的Math类中内置的sqrt()方法来获取指定数的平方根。

以下是获取数的平方根的语法。

(我们已将其转换为long)

long squareRoot = (long)Math.sqrt(inputNumber);

步骤

我们可以遵循两个算法。

步骤1

  • 步骤1 - 通过初始化或用户输入获得一个整数。

  • 步骤2 - 找到输入数字的平方根并将其四舍五入为较低的整数。假设为n。

  • 步骤3 - 找到n+1。

  • 步骤4 - 然后找到n(n+1)。

  • 步骤5 - 如果n(n+1)等于原始输入数字,则它是一个pronic数,否则它不是一个pronic数。

步骤2

  • 步骤1 - 通过初始化或用户输入获得一个整数。

  • 步骤2 - 使用for循环从0迭代到原始数字的平方根。

  • 步骤3 - 在for循环内部不断检查n*(n+1)。

  • 步骤4 - 如果n(n+1)等于原始输入数字,则它是一个pronic数,否则它不是一个pronic数。

多种方法

我们提供了两种不同的方法来解决问题。

  • 通过使用静态输入值且不使用循环(算法1)

  • 通过使用用户定义的方法和循环(算法2)

让我们逐一查看程序及其输出。

方法1:通过使用静态输入值且不使用循环

在这种方法中,找到平方根n,然后找到n(n+1),并检查它是否与原始数字相同。

这里我们使用了算法1。

示例

public class Main{
   //main method
   public static void main(String[] args){

      //initialized a number
      long inputNumber = 12;
      System.out.println("Given number: ");

      //Find square root of the input number
      //and assign it to a long variable say n
      long n = (long)Math.sqrt(inputNumber);

      //Check if the input number is eqaul to n(n+1)
      if(inputNumber==n*(n+1)){
         //print it is a pronic number
         System.out.println(inputNumber+" is a pronic number");
      } else {
         //else print it is not a pronic number
         System.out.println(inputNumber+" is not a pronic number");
      }
   }
}

输出

Given number:
12 is a pronic number

方法2:使用用户定义方法和循环

在此方法中,用户将被要求输入一个整数值,然后我们将通过将输入的数字作为参数调用用户定义的方法。

在方法内部,我们将使用算法来检查数字是否是一个pronic数。

此处我们使用了第二种算法。

示例

import java.util.*;
public class Main{
   //main method
   public static void main(String[] args){

      //initialized a number
      int inputNumber = 110;
      System.out.println("Given number: "+inputNumber);

      //calling the user defined method
      boolean result = checkPronic(inputNumber);
      if(result)

      //print it is a pronic number
      System.out.println(inputNumber+" is a pronic number");

      else
      //else print it is not a pronic number
      System.out.println(inputNumber+" is not a pronic number");

   }
   public static boolean checkPronic(int inputNumber){
      //Find square root of the input number
      //and assign it to a long variable say n
      long n = (long)Math.sqrt(inputNumber);

      //iterate from i=0 to square root of number i.e n
      for(int i=0;i<=n;i++){

         //if i(i+1) equals with inputNumber
         if(inputNumber==i*(i+1))
         //return true
         return true;
      }
      //else return false
      return false;
   }
}

输出

Given number: 110
110 is a pronic number

在本文中,我们探讨了如何使用不同的方法来检查一个数字是否是一个Java中的亲序数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程