国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

Java 中的史密斯數(shù)

Aug 30, 2024 pm 04:28 PM
java

在 Java 中我們有不同類型的功能;史密斯號碼是提供給使用者的功能?;旧希访芩箶?shù)只不過是一個合數(shù)(在數(shù)係中以10為底),其所有數(shù)字之和等於其所有質(zhì)因數(shù)(不包括1)所有數(shù)字之和,這就是所謂的史密斯數(shù)數(shù)字。史密斯數(shù)的另一個名稱是笑話數(shù)。根據(jù)定義,我們可以說,如果滿足條件,所有質(zhì)數(shù)都被自然排除。通常,史密斯數(shù)是根據(jù)使用者要求及其問題陳述的一些要求在數(shù)學(xué)中使用的數(shù)字系統(tǒng)的一個非?;镜淖訖谖?。

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

網(wǎng)頁開發(fā)、程式語言、軟體測試及其他

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

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

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

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

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

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

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

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

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

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

給出的數(shù)字:58

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

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

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

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

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

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

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

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

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

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

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

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

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

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

b.否則,我們可以認為給定的數(shù)字不是史密斯數(shù),因為總和不同。

所以上述步驟對於用Java實作史密斯數(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.");
}
}

說明

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

範(fàn)例#2

讓我們來看另一個例子,如下。

代碼:

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);
}
}
}
}

說明

在上面的範(fàn)例中,我們試著找出 5000 以內(nèi)的所有 smith 編號,如圖所示。我們使用下面的螢?zāi)唤貓D來說明上述程式的最終輸出。

Java 中的史密斯數(shù)

結(jié)論

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

將語義結(jié)構(gòu)應(yīng)用於html的文章,部分和旁邊 將語義結(jié)構(gòu)應(yīng)用於html的文章,部分和旁邊 Jul 05, 2025 am 02:03 AM

在HTML中合理使用語義化標(biāo)籤能提升頁面結(jié)構(gòu)清晰度、可訪問性和SEO效果。 1.用於獨立內(nèi)容區(qū)塊,如博客文章或評論,需保持自包含性;2.用於歸類相關(guān)內(nèi)容,通常包含標(biāo)題,適用於頁面不同模塊;3.用於與主內(nèi)容相關(guān)但非核心的輔助信息,如側(cè)邊欄推薦或作者簡介。實際開發(fā)中應(yīng)結(jié)合、等標(biāo)籤,避免過度嵌套,保持結(jié)構(gòu)簡潔,並通過開發(fā)者工具驗證結(jié)構(gòu)合理性。

請求的操作需要高程窗戶 請求的操作需要高程窗戶 Jul 04, 2025 am 02:58 AM

遇到“此操作需要提升權(quán)限”提示時,說明你需要管理員權(quán)限才能繼續(xù)。解決方法包括:1.右鍵選擇“以管理員身份運行”程序或設(shè)置快捷方式始終以管理員身份運行;2.檢查當(dāng)前賬戶是否為管理員賬戶,若不是則切換或請求管理員協(xié)助;3.用管理員權(quán)限打開命令提示符或PowerShell執(zhí)行相關(guān)命令;4.在必要時通過獲取文件所有權(quán)或修改註冊表等手段繞過限制,但此類操作需謹(jǐn)慎並充分了解風(fēng)險。確認權(quán)限身份並嘗試上述方法通常可解決問題。

Java中可呼叫和可運行的差異 Java中可呼叫和可運行的差異 Jul 04, 2025 am 02:50 AM

Callable和Runnable在Java中主要有三點區(qū)別。第一,Callable的call()方法可以返回結(jié)果,適合需要返回值的任務(wù),如Callable;而Runnable的run()方法無返回值,適用於無需返回的任務(wù),如日誌記錄。第二,Callable允許拋出checked異常,便於錯誤傳遞;而Runnable必須在內(nèi)部處理異常。第三,Runnable可直接傳給Thread或ExecutorService,而Callable只能提交給ExecutorService,並返回Future對像以

探索Java中不同的同步機制 探索Java中不同的同步機制 Jul 04, 2025 am 02:53 AM

Javaprovidesmultiplesynchronizationtoolsforthreadsafety.1.synchronizedblocksensuremutualexclusionbylockingmethodsorspecificcodesections.2.ReentrantLockoffersadvancedcontrol,includingtryLockandfairnesspolicies.3.Conditionvariablesallowthreadstowaitfor

Java Classloader在內(nèi)部如何工作 Java Classloader在內(nèi)部如何工作 Jul 06, 2025 am 02:53 AM

Java的類加載機制通過ClassLoader實現(xiàn),其核心工作流程分為加載、鏈接和初始化三個階段。加載階段由ClassLoader動態(tài)讀取類的字節(jié)碼並創(chuàng)建Class對象;鏈接包括驗證類的正確性、為靜態(tài)變量分配內(nèi)存及解析符號引用;初始化則執(zhí)行靜態(tài)代碼塊和靜態(tài)變量賦值。類加載採用雙親委派模型,優(yōu)先委託父類加載器查找類,依次嘗試Bootstrap、Extension和ApplicationClassLoader,確保核心類庫安全且避免重複加載。開發(fā)者可自定義ClassLoader,如URLClassL

有效處理常見的Java例外 有效處理常見的Java例外 Jul 05, 2025 am 02:35 AM

Java異常處理的關(guān)鍵在於區(qū)分checked和unchecked異常並合理使用try-catch、finally及日誌記錄。 1.checked異常如IOException需強制處理,適用於可預(yù)期的外部問題;2.unchecked異常如NullPointerException通常由程序邏輯錯誤引起,屬於運行時錯誤;3.捕獲異常時應(yīng)具體明確,避免籠統(tǒng)捕獲Exception;4.推薦使用try-with-resources自動關(guān)閉資源,減少手動清理代碼;5.異常處理中應(yīng)結(jié)合日誌框架記錄詳細信息,便於後

現(xiàn)代爪哇的異步編程技術(shù) 現(xiàn)代爪哇的異步編程技術(shù) Jul 07, 2025 am 02:24 AM

Java支持異步編程的方式包括使用CompletableFuture、響應(yīng)式流(如ProjectReactor)以及Java19 中的虛擬線程。 1.CompletableFuture通過鍊式調(diào)用提升代碼可讀性和維護性,支持任務(wù)編排和異常處理;2.ProjectReactor提供Mono和Flux類型實現(xiàn)響應(yīng)式編程,具備背壓機制和豐富的操作符;3.虛擬線程減少並發(fā)成本,適用於I/O密集型任務(wù),與傳統(tǒng)平臺線程相比更輕量且易於擴展。每種方式均有適用場景,應(yīng)根據(jù)需求選擇合適工具並避免混合模型以保持簡潔性

Java中'靜態(tài)”關(guān)鍵字的目的是什麼? Java中'靜態(tài)”關(guān)鍵字的目的是什麼? Jul 05, 2025 am 02:36 AM

靜態(tài)關(guān)鍵字在Java中用於創(chuàng)建屬於類本身的變量和方法,而非類的實例。 1.靜態(tài)變量被所有類的實例共享,適用於存儲所有對象共有的數(shù)據(jù),如Student類中的schoolName。 2.靜態(tài)方法屬於類,不依賴對象,常用於工具函數(shù),如Math.sqrt(),且只能訪問其他靜態(tài)成員。 3.靜態(tài)代碼塊用於在類加載時執(zhí)行初始化操作,如加載庫或設(shè)置日誌。 4.靜態(tài)內(nèi)部類可以獨立於外部類實例化,但無法訪問外部類的非靜態(tài)成員。合理使用static能有效管理類級別的資源和行為。

See all articles