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

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

Java 中的史密斯數(shù)

Aug 30, 2024 pm 04:28 PM
java

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

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

網(wǎng)絡(luò)開(kāi)發(fā)、編程語(yǔ)言、軟件測(cè)試及其他

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

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

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

示例:假設(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(xiàn)在讓我們看看查找史密斯編號(hào)的不同步驟,如下所示。

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

2.之后我們需要找到給定數(shù)字的數(shù)字之和。

3.接下來(lái)我們需要找到給定數(shù)字的素?cái)?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)榭偤筒煌?/p>

所以上述步驟對(duì)于用Java實(shí)現(xiàn)史密斯數(shù)程序很有用。

示例

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

示例#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í)現(xiàn)史密斯數(shù)程序。在這里,我們首先創(chuàng)建了質(zhì)因數(shù)數(shù)字之和的函數(shù);同樣,我們還創(chuàng)建了函數(shù)來(lái)查找給定數(shù)字的數(shù)字總和,如上面的程序所示。之后,我們創(chuàng)建了使用布爾函數(shù)檢查給定數(shù)字是否為素?cái)?shù)的函數(shù)。然后我們編寫主函數(shù),在主函數(shù)中我們接受來(lái)自用戶的數(shù)字并調(diào)用我們已經(jīng)創(chuàng)建的所有函數(shù)并比較兩個(gè)總和。如果總和相等,則打印給定的數(shù)字為史密斯數(shù),如果總和不相等,則打印給定的數(shù)字不是史密斯數(shù)。我們使用下面的屏幕截圖來(lái)說(shuō)明上述程序的最終輸出。

示例#2

讓我們看另一個(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ō)明

在上面的示例中,我們嘗試找出 5000 以內(nèi)的所有 smith 編號(hào),如圖所示。我們使用下面的屏幕截圖來(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)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系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

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++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)

Laravel Lazy Loading與急切的加載 Laravel Lazy Loading與急切的加載 Jul 28, 2025 am 04:23 AM

懶加載在訪問(wèn)關(guān)聯(lián)時(shí)才查詢,易導(dǎo)致N 1問(wèn)題,適合不確定是否需要關(guān)聯(lián)數(shù)據(jù)的場(chǎng)景;2.急加載使用with()提前加載關(guān)聯(lián)數(shù)據(jù),避免N 1查詢,適合批量處理場(chǎng)景;3.應(yīng)優(yōu)先使用急加載優(yōu)化性能,可通過(guò)LaravelDebugbar等工具檢測(cè)N 1問(wèn)題,并謹(jǐn)慎使用模型的$with屬性以避免不必要的性能開(kāi)銷。

Python內(nèi)存管理示例 Python內(nèi)存管理示例 Jul 28, 2025 am 01:10 AM

Python的內(nèi)存管理基于引用計(jì)數(shù)和垃圾回收機(jī)制,1.引用計(jì)數(shù)機(jī)制確保對(duì)象在引用數(shù)為0時(shí)立即釋放,sys.getrefcount()返回值比實(shí)際引用多1因其自身增加引用;2.循環(huán)引用無(wú)法通過(guò)引用計(jì)數(shù)清理,需依賴gc模塊的分代回收,調(diào)用gc.collect()可回收不可達(dá)對(duì)象;3.實(shí)際開(kāi)發(fā)中應(yīng)避免長(zhǎng)期持有大對(duì)象引用,可使用weakref弱引用、及時(shí)置None釋放內(nèi)存,并利用tracemalloc監(jiān)控內(nèi)存分配;4.總結(jié):Python結(jié)合引用計(jì)數(shù)與垃圾回收管理內(nèi)存,開(kāi)發(fā)者可通過(guò)合理使用工具和優(yōu)化引用管

將PHP與機(jī)器學(xué)習(xí)模型集成 將PHP與機(jī)器學(xué)習(xí)模型集成 Jul 28, 2025 am 04:37 AM

usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorfastapiandcallingitfromphpusingcurlorguzzle.2.runpythonscriptsdirectsdirectlyectlyectlyfromphpsingexec()orshell_exec()orshell_exec()orshell_exec()

Laravel Raw SQL查詢示例 Laravel Raw SQL查詢示例 Jul 29, 2025 am 02:59 AM

Laravel支持使用原生SQL查詢,但應(yīng)優(yōu)先使用參數(shù)綁定以確保安全;1.使用DB::select()執(zhí)行帶參數(shù)綁定的SELECT查詢,防止SQL注入;2.使用DB::update()執(zhí)行UPDATE操作并返回影響行數(shù);3.使用DB::insert()插入數(shù)據(jù);4.使用DB::delete()刪除數(shù)據(jù);5.使用DB::statement()執(zhí)行如CREATE、ALTER等無(wú)結(jié)果集的SQL語(yǔ)句;6.推薦在QueryBuilder中使用whereRaw、selectRaw等方法結(jié)合原生表達(dá)式以提升安

帶有項(xiàng)目反應(yīng)堆和彈簧WebFlux的Java的反應(yīng)性編程 帶有項(xiàng)目反應(yīng)堆和彈簧WebFlux的Java的反應(yīng)性編程 Jul 29, 2025 am 12:04 AM

響應(yīng)式編程在Java中通過(guò)ProjectReactor和SpringWebFlux實(shí)現(xiàn)高并發(fā)、低延遲的非阻塞服務(wù)。1.ProjectReactor提供Mono和Flux兩個(gè)核心類型,支持聲明式處理異步數(shù)據(jù)流,并通過(guò)操作符鏈進(jìn)行轉(zhuǎn)換、過(guò)濾等操作;2.SpringWebFlux基于Reactor構(gòu)建,支持注解式和函數(shù)式兩種編程模型,運(yùn)行在Netty等非阻塞服務(wù)器上,可高效處理大量并發(fā)連接;3.使用WebFlux Reactor能提升I/O密集型場(chǎng)景下的并發(fā)能力與資源利用率,天然支持SSE、WebSo

python三元操作員示例 python三元操作員示例 Jul 28, 2025 am 02:57 AM

Python的三元運(yùn)算符用于簡(jiǎn)潔地實(shí)現(xiàn)if-else判斷,其語(yǔ)法為“value_if_trueifconditionelsevalue_if_false”;1.可用于簡(jiǎn)單賦值,如根據(jù)數(shù)值正負(fù)返回對(duì)應(yīng)字符串;2.可避免除零錯(cuò)誤,如判斷分母非零再進(jìn)行除法;3.可在字符串格式化中根據(jù)條件選擇內(nèi)容;4.可在列表推導(dǎo)式中為不同元素分配標(biāo)簽;需注意該運(yùn)算符僅適用于二分支情況,不宜多層嵌套,復(fù)雜邏輯應(yīng)使用傳統(tǒng)if-elif-else結(jié)構(gòu)以保證可讀性。

在Java中使用Mapstruct進(jìn)行無(wú)痛豆地圖 在Java中使用Mapstruct進(jìn)行無(wú)痛豆地圖 Jul 28, 2025 am 03:20 AM

MapStruct是一個(gè)編譯時(shí)代碼生成器,用于簡(jiǎn)化JavaBean之間的映射。1.它通過(guò)定義接口自動(dòng)生成實(shí)現(xiàn)類,避免手動(dòng)編寫冗長(zhǎng)的set/get映射代碼;2.具備類型安全、無(wú)運(yùn)行時(shí)開(kāi)銷、支持自動(dòng)映射同名字段、自定義表達(dá)式、嵌套對(duì)象和集合映射等特性;3.可與Spring集成,使用@Mapper(componentModel="spring")將mapper注入為Springbean;4.配置簡(jiǎn)單,只需引入mapstruct依賴和annotationProcessorPaths插

記事本查找并替換為正則捕獲組 記事本查找并替換為正則捕獲組 Jul 28, 2025 am 02:17 AM

在Notepad 中使用正則表達(dá)式捕獲組可有效重組文本,首先需打開(kāi)替換對(duì)話框(Ctrl H),選擇“搜索模式”為“正則表達(dá)式”,1.使用()定義捕獲組,如(\w )捕獲單詞;2.在替換框中用\1、\2引用對(duì)應(yīng)組;3.示例:交換姓名“JohnDoe”為“Doe,John”,查找(\w )\s (\w ),替換為\2,\1;4.日期格式轉(zhuǎn)換2023-12-25為25/12/2023,查找(\d{4})-(\d{2})-(\d{2}),替換為\3/\2/\1;5.日志重排可提取時(shí)間、級(jí)別、ID等信息

See all articles