Java為用戶提供了一種不同類型的數(shù)字系統(tǒng);完全數(shù)也是java提供的一種數(shù)字系統(tǒng)。在Java中我們可以將任何數(shù)字視為完美數(shù)。如果除它之外的所有因數(shù)都等于給定數(shù),那么我們可以認(rèn)為給定數(shù)是完全數(shù)。在Java中,我們可以使用不同的方法來找到完美數(shù)?;旧?,完美數(shù)只不過是數(shù)系中以 10 為底的任何數(shù)字,它是數(shù)學(xué)中數(shù)系的一個(gè)子領(lǐng)域。根據(jù)用戶要求,我們可以使用完美的數(shù)字系統(tǒng)。
開始您的免費(fèi)軟件開發(fā)課程
網(wǎng)絡(luò)開發(fā)、編程語言、軟件測(cè)試及其他
完美數(shù)背后的邏輯
現(xiàn)在讓我們看看java中完美數(shù)背后的邏輯如下。
完美數(shù)的基本邏輯非常簡(jiǎn)單。首先,我們需要找出給定數(shù)字的正因數(shù),然后將除該數(shù)字本身之外的所有因數(shù)相加。如果因數(shù)之和等于給定數(shù),則可以說給定數(shù)是完全數(shù),如果因數(shù)之和不等于給定數(shù),則可以說給定數(shù)是不是一個(gè)完美的數(shù)字。讓我們看一個(gè)完美數(shù)的例子;那么我們將得到如下詳細(xì)的想法。
假設(shè)我們需要檢查 8 是否是一個(gè)完美數(shù)。
- 首先找出正因數(shù)1、2、4、8?,F(xiàn)在將除8之外的所有因數(shù)相加,得到的結(jié)果是7?,F(xiàn)在將結(jié)果與給定的數(shù)字進(jìn)行比較;看到這里兩個(gè)數(shù)字是不同的。這意味著我們可以說這個(gè)數(shù)字不是一個(gè)完美的數(shù)字。
- 現(xiàn)在讓我們考慮另一個(gè)數(shù)字:6。
- 求 6 的正因數(shù)是 1、2、3、6。
- 所有因數(shù)之和為 6,排除 6。
- 現(xiàn)在將結(jié)果與給定的數(shù)字進(jìn)行比較,看到這里給定的數(shù)字和結(jié)果是相同的,這意味著我們可以說給定的數(shù)字是一個(gè)完美的數(shù)字。
如何在Java中檢查完全數(shù)?
現(xiàn)在讓我們看看如何檢查完全數(shù)java,如下所示。在java編程中,有以下三種不同的方法來檢查完全數(shù)。
1.? 通過使用 while 循環(huán)
在while循環(huán)中,我們需要執(zhí)行以下一些步驟。
1.首先,我們需要讀取用戶輸入的號(hào)碼。
2.循環(huán)將繼續(xù),直到條件 (j
3.例如 no=8, j=1 no/2=4,所以 j
8%j=0 true 那么 sum =1
J=2 2
這樣,我們就完成了所有的迭代,找到了完美的數(shù)字。
2.通過使用靜態(tài)方法
在這個(gè)方法中,我們可以調(diào)用靜態(tài)方法來檢查完美數(shù);在這個(gè)方法中,我們只需要調(diào)用PerfacOrNot方法。它會(huì)自動(dòng)計(jì)算所有正因數(shù)的總和,并檢查給定的數(shù)字是否完美。
3.通過使用遞歸方法
在這個(gè)方法中,我們還使用對(duì)象調(diào)用了 PerfectOrNot() 方法。在此方法中,執(zhí)行自行啟動(dòng)并調(diào)用 PerfectOrNot ()。它重復(fù)迭代,直到 j
示例
現(xiàn)在讓我們看看 Java 中完美數(shù)的不同示例,如下。
示例#1
代碼:
import java.util.Scanner; class Perfect_number1 { public static void main(String arg[]) { long num,s=0; Scanner s_c=new Scanner(System.in); System.out.println("Enter number"); num=s_c.nextLong(); int j=1; while(j<=num/2) { if(num%j==0) { s+=j; } j++; } if(s==num) { System.out.println(num+" the given number is perfect number"); } else System.out.println(num+" the given number is not perfect number"); } }
說明
通過使用上面的程序,我們嘗試用 while 循環(huán)在 java 中實(shí)現(xiàn)完美數(shù)。上面程序的編碼非常簡(jiǎn)單,這里我們創(chuàng)建了 main 方法;在 main 方法中,我們使用 Scanner 類和 while 循環(huán)來查找給定數(shù)字的因子,并將該因子添加到 s 變量中,該變量是因子的總和,如上面的程序所示。最后,我們比較兩個(gè)數(shù)字并根據(jù)比較打印消息。我們使用下面的屏幕截圖來說明上述程序的最終輸出。
示例#2
現(xiàn)在讓我們看另一個(gè)使用靜態(tài)方法的完全數(shù)示例,如下所示。
代碼:
import java.util.Scanner; class Perfect_Method { public static void main(String arg[]) { long num,m; Scanner s_c=new Scanner(System.in); System.out.println("Enter number"); num=s_c.nextLong(); m=perfectOrNot(num); if(m==num) System.out.println(num+" The given number is perfect number"); else System.out.println(num+" The given number is not perfect number"); } static long perfectOrNot(long n) { long s=0; for(int j=1;j<=n/2;j++) { if(n%j==0) { s+=j; } } return s; } }
說明
In the above program, we use a static method to check if a given number is a perfect number or not. In the above program, we use the perfecOrNot () method. After that, we use a for loop to find the factors of the given number, and the remaining process is the same, that is, to compare the result with the given number and print a message according to the comparison. The final output of the above program we illustrate by using the following screenshot as follows.
Example #3
Now let’s see another example to check perfect numbers by using the recursive Method as follows.
Code:
public class Recursive { static int n = 200; static int s = 0; static int d = 1; static int findPerfect(int n, int d) { { if(d<=n/2) { if(n%d==0) { s+=d; } d++; findPerfect(n,d); } return s; } } public static void main(String args[]) { int r = findPerfect(n,d); if(r == n) System.out.println(" The given number is perfect Number"); else System.out.println("The given number is not perfect Number"); } }
Explanation
In the above program, we are using a recursive method to check the perfect number. The final output of the above program we illustrate by using the following screenshot as follows.
Conclusion
We hope from this article you learn Perfect Number in java. From the above article, we have learned the basic logic of Perfect Numbers, and we also see different examples of Perfect Numbers. From this article, we learned how and when we use the Perfect Number in java.
以上是Java 中的完美數(shù)的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣機(jī)

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

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

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

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

懶加載在訪問關(guān)聯(lián)時(shí)才查詢,易導(dǎo)致N 1問題,適合不確定是否需要關(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)化性能,可通過LaravelDebugbar等工具檢測(cè)N 1問題,并謹(jǐn)慎使用模型的$with屬性以避免不必要的性能開銷。

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

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

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等無結(jié)果集的SQL語句;6.推薦在QueryBuilder中使用whereRaw、selectRaw等方法結(jié)合原生表達(dá)式以提升安

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

Python的三元運(yùn)算符用于簡(jiǎn)潔地實(shí)現(xiàn)if-else判斷,其語法為“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)以保證可讀性。

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

在Notepad 中使用正則表達(dá)式捕獲組可有效重組文本,首先需打開替換對(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等信息
