如何在 Java 中檢查一個數是否為普洛尼克數?
普洛尼克數可以定義為兩個連續整數的乘積。
在數學上,普洛尼克數的形式為 n(n+1)。
它也被稱為異面數、長方形數或矩形數。
舉幾個例子
示例 1
輸入數字為 12
讓我們使用普洛尼克數的邏輯來檢查它 -
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 不是一個普洛尼克數。
其他一些普洛尼克數的例子包括 0、2、42、56、90、110、380、420、462 等。
注意−
根據維基百科
唯一的素數普洛尼克數是 2。
所有普洛尼克數都是偶數。
語法
要獲取指定數字的平方根,我們可以使用內建的 sqrt() 方法,
該方法存在於 java.lang 包的 Math 類中。
以下是獲取數字平方根的語法。
(我們已強制轉換為 long 型別)
long squareRoot = (long)Math.sqrt(inputNumber);
演算法
我們這裡可以遵循 2 種演算法。
演算法 1
步驟 1 - 透過初始化或使用者輸入獲取一個整數。
步驟 2 - 找到輸入數字的平方根並將其舍入到較低的整數。假設它是 n。
步驟 3 - 找到 n+1。
步驟 4 - 然後找到 n(n+1)
步驟 5 - 如果 n(n+1) 等於原始輸入數字,則它是一個普洛尼克數,否則它不是一個普洛尼克數。
演算法 2
步驟 1 - 透過初始化或使用者輸入獲取一個整數。
步驟 2 - 使用 for 迴圈並從 0 迭代到原始數字的平方根。
步驟 3 - 並在 for 迴圈內部持續檢查 n*(n+1)
步驟 4 - 如果 n(n+1) 等於原始輸入數字,則它是一個普洛尼克數,否則它不是一個普洛尼克數。
多種方法
我們提供了兩種不同的方法來解決這個問題。
使用靜態輸入值且不使用迴圈 (演算法 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:使用使用者定義的方法並使用迴圈
在這種方法中,將要求使用者輸入一個整數,然後我們將透過將此輸入數字作為引數來呼叫使用者定義的方法。
在方法內部,我們將使用演算法檢查該數字是否為普洛尼克數。
這裡我們使用了演算法 2
示例
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 中使用不同的方法檢查一個數字是否為普洛尼克數。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP