素?cái)?shù)Java程序編寫(xiě):如何優(yōu)化算法提升效率

用JAVA語(yǔ)言編寫(xiě)一程序,求100以?xún)?nèi)的所有素?cái)?shù) 1、設(shè)計(jì)實(shí)現(xiàn):通過(guò)for循環(huán)輸出,使用break跳出。(1)需求:輸出1~100的所有素?cái)?shù)。(2)素?cái)?shù):--斷條件1:...
用JAVA語(yǔ)言編寫(xiě)一程序,求100以?xún)?nèi)的所有素?cái)?shù)
1、設(shè)計(jì)實(shí)現(xiàn):通過(guò)for循環(huán)輸出,使用break跳出。(1)需求:輸出1~100的所有素?cái)?shù)。(2)素?cái)?shù):--斷條件1:只能被1和本身整除的稱(chēng)為素?cái)?shù)。--斷條件2:在區(qū)間(1,x/2)中找不到能整除素?cái)?shù)x的整數(shù)。--斷條件3:在區(qū)間(1,sqrt(x)中找不到能整除素?cái)?shù)x的整數(shù)。
2、素?cái)?shù)不能被2以上的自然數(shù)整除,因此斷N能否被某個(gè)自然數(shù)整除,只需要斷到N/2即可。比如:自然數(shù)31,31/2算成整形是15。
3、最有效率的算法,請(qǐng)看下面 package number;import java.util.HashMap;import java.util.Map;/ 查找小于某個(gè)數(shù)的所有素?cái)?shù)。最簡(jiǎn)單的方法就是試除法,將該數(shù)N用小于等于N的平方根的所有素?cái)?shù)去試除,若均無(wú)法整除,則N為素?cái)?shù)。
4、在1000到1500之間的所有素?cái)?shù)可以通過(guò)編寫(xiě)一個(gè)簡(jiǎn)單的Java程序來(lái)找到。素?cái)?shù)是指除了1和它本身以外,不能被其他正整數(shù)整除的數(shù)。
5、思路:先說(shuō)什么是素?cái)?shù)。除了1和它本身以外不再有其他的因數(shù)就是素?cái)?shù)。所以你要做的就是對(duì)于一個(gè)整數(shù)i,讓他和比他小的正整數(shù)取余數(shù),如果為0的話(huà)就肯定不是素?cái)?shù)了。如果都不為0且最后只有他本身那么這個(gè)數(shù)就是素?cái)?shù)了。
6、此時(shí)通過(guò)break語(yǔ)句跳出內(nèi)部循環(huán)。若內(nèi)部循環(huán)完畢,說(shuō)明i不能被任何數(shù)(2至i-1)整除,因此i是素?cái)?shù)。此時(shí)輸出i為素?cái)?shù)。程序中使用了字符串拼接輸出語(yǔ)句 是素?cái)?shù),用于在控制臺(tái)輸出素?cái)?shù)的標(biāo)識(shí)。通過(guò)上述Java代碼,可以實(shí)現(xiàn)對(duì)101到200之間素?cái)?shù)的斷和輸出,直觀地回答了題目中要求的問(wèn)題。
JAVA求素?cái)?shù)問(wèn)題,輸出101到200之間的所有素?cái)?shù),這個(gè)我會(huì),但是題目改成...
1、for(int j=2;j = Math.sqrt(i);j++)不然結(jié)果中會(huì)有121和169兩個(gè)平方數(shù),x變量沒(méi)有進(jìn)行計(jì)數(shù)累加,所以這里的輸出也不對(duì),輸出語(yǔ)句中的“/n”應(yīng)該改為“\n”,才表示換行。
2、你好,你如果將boolean Y=true放在第一個(gè)位置,那么后面一旦被這個(gè)if語(yǔ)句 if(i%j==0){ Y=fal;break;} 設(shè)置為了fal后,Y就會(huì)一直是fal,所以就不能再輸出素?cái)?shù)了。但是你將它放在for循環(huán)中,每次循環(huán)時(shí)這句話(huà)就會(huì)把Y設(shè)為true,后面的語(yǔ)句再斷是否要將Y設(shè)為fal,這樣當(dāng)然就不會(huì)錯(cuò)了。
3、count++;System.out.print(num + \t);if (count % 5 == 0) {System.out.println();}}}System.out.println();System.out.println(101到200之間所有素?cái)?shù)的和為 + sum);}} java介紹:Java是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。
4、通過(guò)Java編程實(shí)現(xiàn)斷101到200之間有多少個(gè)素?cái)?shù)并輸出,其核心思路在于遍歷指定區(qū)間內(nèi)的每一個(gè)整數(shù),斷其是否為素?cái)?shù)。素?cái)?shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)的自然數(shù)。
本文鏈接:http:///bian/873307.html