亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
史密斯數(shù)背後的邏輯
如何在Java中檢查史密斯數(shù)?
範(fàn)例#2
結(jié)論
首頁(yè) Java java教程 Java 中的史密斯數(shù)

Java 中的史密斯數(shù)

Aug 30, 2024 pm 04:28 PM
java

在 Java 中我們有不同類(lèi)型的功能;史密斯號(hào)碼是提供給使用者的功能。基本上,史密斯數(shù)只不過(guò)是一個(gè)合數(shù)(在數(shù)係中以10為底),其所有數(shù)字之和等於其所有質(zhì)因數(shù)(不包括1)所有數(shù)字之和,這就是所謂的史密斯數(shù)數(shù)字。史密斯數(shù)的另一個(gè)名稱(chēng)是笑話(huà)數(shù)。根據(jù)定義,我們可以說(shuō),如果滿(mǎn)足條件,所有質(zhì)數(shù)都被自然排除。通常,史密斯數(shù)是根據(jù)使用者要求及其問(wèn)題陳述的一些要求在數(shù)學(xué)中使用的數(shù)字系統(tǒng)的一個(gè)非常基本的子欄位。

開(kāi)始您的免費(fèi)軟體開(kāi)發(fā)課程

網(wǎng)頁(yè)開(kāi)發(fā)、程式語(yǔ)言、軟體測(cè)試及其他

史密斯數(shù)背後的邏輯

現(xiàn)在讓我們來(lái)看看史密斯數(shù)背後的邏輯如下。

史密斯數(shù)的邏輯很簡(jiǎn)單,我們考慮一下下面的數(shù)字,我們就很容易理解如下邏輯了。

範(fàn)例:假設(shè)我們需要檢查給定的數(shù)字是否為史密斯號(hào)碼。

給定的數(shù)字是:95

首先,我們要找出 95 的質(zhì)因數(shù)是 19 和 5 (5, 19)

現(xiàn)在求數(shù)字和 9 + 5 = 14

質(zhì)因數(shù)總和為 5 + 1 + 9 = 15

現(xiàn)在比較兩個(gè)結(jié)果,看這裡 14 不等於 15。所以給定的數(shù)字不是素?cái)?shù)。

讓我們考慮另一個(gè)數(shù)字,如下所示。

給出的數(shù)字:58

先找出 58 = 2 和 29 的質(zhì)因數(shù)

質(zhì)因數(shù)總和 = 2 + 2 +9 = 13

給定數(shù)字的總和 = 5 + 8 = 13

現(xiàn)在比較兩個(gè)結(jié)果,這裡兩個(gè)結(jié)果是相同的,或者我們可以說(shuō)是相等的。所以我們可以說(shuō)給定的數(shù)字是史密斯數(shù)。

這就是史密斯數(shù)背後非常簡(jiǎn)單的邏輯,我們只需要比較素?cái)?shù)階乘和與數(shù)字和即可。如果兩個(gè)總和相等,則給定的數(shù)字是史密斯數(shù),否則該數(shù)字不是史密斯數(shù)。

如何在Java中檢查史密斯數(shù)?

現(xiàn)在讓我們看看如何在 java 中檢查給定的數(shù)字是否是 smith。

在上面這一點(diǎn)中,我們已經(jīng)討論了史密斯數(shù)的不同範(fàn)例?,F(xiàn)在讓我們來(lái)看看尋找史密斯編號(hào)的不同步驟,如下所示。

1.首先我們需要初始化或讀取使用者的數(shù)字。

2.之後我們需要找出給定數(shù)字的數(shù)字總和。

3.接下來(lái)我們要找出給定數(shù)字的質(zhì)數(shù)因子。

4.現(xiàn)在計(jì)算質(zhì)因數(shù)的數(shù)字和。

5.現(xiàn)在比較給定數(shù)字的數(shù)字和與質(zhì)因數(shù)的數(shù)字和。

a.如果兩個(gè)和相等,那麼我們可以說(shuō)給定的數(shù)字是史密斯數(shù)。

b.否則,我們可以認(rèn)為給定的數(shù)字不是史密斯數(shù),因?yàn)榭偤筒煌?

所以上述步驟對(duì)於用Java實(shí)作史密斯數(shù)程式很有用。

範(fàn)例

現(xiàn)在讓我們看看java中史密斯數(shù)的不同範(fàn)例,以便更好地理解,如下。

範(fàn)例#1

代碼:

import java.util.*;
public class Smith_Num
{
static int F_Sum_P_Fact(int no)
{
int j=2, add=0;
while(no>1)
{
if(no%j==0)
{
add=add+F_S_Digit(j);
no=no/j;
}
else
{
do
{
j++;
}
while(!isPrime(j));
}
}
return add;
}
static int F_S_Digit(int no)
{
int sum=0;
while(no>0)
{
sum=sum+no%10;
no=no/10;
}
return sum;
}
static boolean isPrime(int j)
{
boolean b=true;
int d=2;
while(d<Math.sqrt(j))
{
if(j%d==0)
{
b=false;
}
d++;
}
return b;
}
public static void main(String args[])
{
Scanner s_c = new Scanner(System.in);
System.out.print("Enter a number: ");
int no=s_c.nextInt();
int x = F_S_Digit(no);
int y = F_Sum_P_Fact(no);
System.out.println("addition of digit = "+x);
System.out.println("addition of prime factors digits is = "+y);
if(x==y)
System.out.print("The user enterd number is smith number.");
else
System. out.print("The user entered number is not smith number.");
}
}

說(shuō)明

在上面的程式中,我們嘗試用java實(shí)作史密斯數(shù)程式。在這裡,我們首先創(chuàng)建了質(zhì)因數(shù)數(shù)字總和的函數(shù);同樣,我們還創(chuàng)建了函數(shù)來(lái)查找給定數(shù)字的數(shù)字總和,如上面的程式所示。之後,我們創(chuàng)建了使用布林函數(shù)檢查給定數(shù)字是否為素?cái)?shù)的函數(shù)。然後我們編寫(xiě)主函數(shù),在主函數(shù)中我們接受來(lái)自使用者的數(shù)字並呼叫我們已經(jīng)創(chuàng)建的所有函數(shù)並比較兩個(gè)總和。如果總和相等,則列印給定的數(shù)字為史密斯數(shù),如果總和不相等,則列印給定的數(shù)字不是史密斯數(shù)。我們使用下面的螢?zāi)唤貓D來(lái)說(shuō)明上述程式的最終輸出。

範(fàn)例#2

讓我們來(lái)看另一個(gè)例子,如下。

代碼:

import java.util.*;
public class Smith_Num_2
{
static List<Integer> F_P_Fact(int no)
{
List<Integer> output = new ArrayList<>();
for (int j = 2; no % j == 0; no = no/j)
output.add(j);
for (int j = 3; j* j <= no; j=j+2)
{
while (no % j == 0)
{
output.add(j);
no = no/j;
}
}
if (no != 1)
output.add(no);
return output;
}
static int S_Digit(int no)
{
int s= 0;
while (no > 0)
{
s =s+(no % 10);
no = no/10;
}
return s;
}
public static void main(String args[])
{
for (int no = 1; no < 5000; no++)
{
List<Integer> Fact = F_P_Fact(no);
if (Fact.size() > 1)
{
int s = S_Digit(no);
for (int fa : Fact)
s =s-S_Digit(fa);
if (s == 0)
System.out.println(no);
}
}
}
}

說(shuō)明

在上面的範(fàn)例中,我們?cè)囍页?5000 以?xún)?nèi)的所有 smith 編號(hào),如圖所示。我們使用下面的螢?zāi)唤貓D來(lái)說(shuō)明上述程式的最終輸出。

Java 中的史密斯數(shù)

結(jié)論

我們希望您透過(guò)這篇文章學(xué)習(xí) Java 中的史密斯數(shù)。從上面的文章中,我們了解了史密斯數(shù)的基本邏輯,也看到了史密斯數(shù)的不同例子。從這篇文章中,我們學(xué)習(xí)瞭如何以及何時(shí)在 java 中使用史密斯數(shù)。

以上是Java 中的史密斯數(shù)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

如何使用可選類(lèi)避免Java中的NullPoInterException? 如何使用可選類(lèi)避免Java中的NullPoInterException? Sep 25, 2025 am 06:04 AM

Optional類(lèi)用於安全地處理可能為null的值,避免空指針異常。 1.使用Optional.ofNullable創(chuàng)建實(shí)例,可處理null值。 2.通過(guò)isPresent或ifPresent安全檢查和訪(fǎng)問(wèn)值,避免直接調(diào)用get導(dǎo)致異常。 3.利用orElse、orElseGet提供默認(rèn)值,或使用orElseThrow拋出自定義異常。 4.通過(guò)map和filter鍊式操作轉(zhuǎn)換或過(guò)濾值,提升代碼可讀性和健壯性。

如何在Java中獲得對(duì)象的類(lèi)? 如何在Java中獲得對(duì)象的類(lèi)? Sep 26, 2025 am 04:58 AM

使用getClass()方法可獲取對(duì)象的運(yùn)行時(shí)類(lèi),如str.getClass()返回Class對(duì)象;對(duì)於類(lèi)型可直接使用String.class語(yǔ)法。 Class類(lèi)提供getName()、getSimpleName()等方法獲取類(lèi)信息,例如num.getClass().getSimpleName()輸出Integer。

如何在Java中創(chuàng)建多維數(shù)組? 如何在Java中創(chuàng)建多維數(shù)組? Sep 25, 2025 am 05:37 AM

atwo-dimensionalarayinjavaisanarrayofarrays,宣布Withtwobrackets,例如[] [] [] [] m atrix,and canbeinitializedwithvaluesorusisionnew; forexample,int [] [] [] [] [] [] matrix = {{1,2},{1,2},{3,4}}}}; createSa3x2matrix。

如何在Java中獲取當(dāng)前的工作目錄? 如何在Java中獲取當(dāng)前的工作目錄? Sep 26, 2025 am 05:51 AM

thecurrentworkingdirectoryinjavacanbeobtainedusystem.getProperty(“ user.dir”),whoturnsthearsthearstheasthearstheabsolutepathwherethetheretheprogramwaslaunched; or of paths.gets.gets.get(“”)。 toabsolutepath(“)

Java的Singleton班是什麼? Java的Singleton班是什麼? Sep 25, 2025 am 05:30 AM

AsingletonclassinjavaensonyoneineinStanceExistsThroughOuTanApplication'slifecycledusyausyaprivateConstructor,aprivateStaticInstance,andApublicStaticgetInstance()方法; commonImimimplementiations includeEageimplectations includeEagredeAgredeAgredeAgredeAgereAgerialization,lazyInitialization,lazyInitialization,lazyinitialization,threade-shore-saberelaz

如何在Java中實(shí)現(xiàn)自定義比較器? 如何在Java中實(shí)現(xiàn)自定義比較器? Sep 25, 2025 am 05:09 AM

ToimplementacustomComparatorinJava,createaclassorlambdathatoverridesthecomparemethodtodefinesortinglogic.Forexample,withaPersonclasshavingnameandagefields,defineAgeComparatorimplementingComparatorandoverridecomparetosortbyageusingInteger.compare(p1.a

Java中仿製藥的概念是什麼? Java中仿製藥的概念是什麼? Sep 26, 2025 am 05:19 AM

genericsinjavaprovidecompile-timetypesafetyandeliminatetheneedforcastingbyallowingClasses,Interfaces,andMethodStoperateStoperateMonontyPeparameters; turanlistensensensensensensensensensensersenlystrissenlystringscanbeaded;

悟空瀏覽器怎麼導(dǎo)出歷史記錄_悟空瀏覽器瀏覽歷史記錄導(dǎo)出備份方法 悟空瀏覽器怎麼導(dǎo)出歷史記錄_悟空瀏覽器瀏覽歷史記錄導(dǎo)出備份方法 Sep 26, 2025 pm 12:54 PM

可通過(guò)手動(dòng)記錄、提取數(shù)據(jù)庫(kù)或自動(dòng)化腳本三種方式備份悟空瀏覽器歷史。首先可進(jìn)入歷史頁(yè)面手動(dòng)複製或拍照保存;其次若設(shè)備已root,可用文件管理器訪(fǎng)問(wèn)/data/data/com.wukong.browser/databases/路徑,導(dǎo)出history.db數(shù)據(jù)庫(kù)並用SQLite工具解析為CSV;最後對(duì)無(wú)root設(shè)備,可使用Auto.js等工具編寫(xiě)腳本,調(diào)用無(wú)障礙服務(wù)自動(dòng)滑動(dòng)歷史頁(yè)面並截圖存檔,實(shí)現(xiàn)半自動(dòng)化備份。

See all articles