導航:首頁 > 編程語言 > java素數2

java素數2

發布時間:2022-06-08 16:41:40

java里怎麼實現素數

importjava.util.Scanner;

//質數又稱素數,是指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數
publicclassPrimeNumber{

publicstaticvoidmain(String[]args){

Scannerscan=newScanner(System.in);//掃描器,接收控制台輸入信息

System.out.print("請輸入一個整數:");

try{
intnum=scan.nextInt();//取出控制台輸入的信息
if(isPrime(num)){//調用isPrime()方法

System.out.println(num+"是素數!");//若isPrime()方法返回true,輸出是素數

}else{

System.out.println(num+"不是素數!");//若isPrime()方法返回false,輸出不是素數
}
}catch(Exceptione){
System.out.println("請輸入整數");//捕捉異常,若輸入的不是整數,輸出異常
}
}

/**
*<pre>
*用於判斷一個數是否為素數,若為素數,返回true,否則返回false
*</pre>
*
*@parama
*輸入的值
*@returntrue、false
*/
publicstaticbooleanisPrime(inta){

booleanflag=true;

if(a<2){//素數不小於2
returnfalse;
}else{

for(inti=2;i<=Math.sqrt(a);i++){

if(a%i==0){//若能被整除,則說明不是素數,返回false

flag=false;
break;//跳出循環
}
}
}
returnflag;
}
}

❷ JAVA求素數:for(j=2;j<=i/2;j++):是什麼意思為什麼i/2,為什麼沒有「{」

如上所述,不加{}的for的循環體只有後面緊接的一句,
為什麼是i/2,就是i的一半(呵呵貌似白說了哈),當i的一半賦給一個整型的數時,或i/2被當成一個整型的數使用時,它一半就是去掉小數後的數(向下取整,比如5的一半,就當是2)
因此,演算法大致的意思是這樣,一個3到100的數,如果這個數,都不能被2到這個數的一半的數整除的話,就是素數
------------以下是對補充問題的回答------------------------
第一個if,當i能被j(一個2到i一半的整數)整除的時候,跳出for(j=2;j<=i/2;j++){}循環體,當然for(j=2;j<=i/2;j++){}循環體什麼也沒做,就一個勁的判斷,當判斷到有的場合時跳出,沒有的話,j遞增,然後繼續循環
直到循環結束都沒出現當i能被j(一個2到i一半的整數)整除的場合時,也跳出循環體,而j的值在結束時加1,剛好大過或等於(i的一半加1)。
而i在以上的兩種情況跳出的場合,性質是不一樣的,第一種是非素數,第二種是素數,所以進行
第二個if,假如for(j=2;j<=i/2;j++){}循環體是在循環還沒結束時跳出的,值必定小於(i的一半加1),就什麼也不做,反之,是在循環結束時跳出的,那就是素數,就進行列印,
第三個if,沒用{}那麼隻影響下一句,效果就是每6個素數就分別多用一行空行格開,純粹格式不用在意
當然,如樓上,所說可以用i的平方根代替,可以減少檢驗次數
可能沒說清楚,可能啰嗦了點,呵呵,希望對你有幫助!
-------------------------------對補充的回答
這兩天沒上網XD,是的,沒有自增

❸ 用java判斷素數

import java.util.Scanner;

public class Test40013 {
public static void main(String args[]) {
int ri, repeat;
int i, m, n;
boolean flag;
Scanner in = new Scanner(System.in);
repeat = in.nextInt();
for (ri = 1; ri <= repeat; ri++) {
m = in.nextInt();
/*--------------------*/
flag = true;
if(m == 1){//1不是素數,要排除
ri--;
continue;
}
for (i = 2; i <= Math.sqrt(m); i++) {
if (m % i == 0) {
flag = false;
break;
}
}
//add ends
if (flag)
System.out.println("YES");
else
System.out.println("NO");
}
}
}

❹ java 判斷素數 for(int i=2;i<=n/2;i++) 為什麼非得i<=n/2呢

因為要整除

n%2==0就是整除了,所以i<=n/2就是取一半,是個數學題,當然可以i<=n,不過好像沒有必要

素數就是2開始到比自己小的數,然後還不能被其他數字整除,應該是這個意思吧,

publicstaticbooleanisPrime(intstart,Stringinput)
{
input=input.startsWith("+")?input.substring(1):input;
intnumber=Integer.parseInt(input);
if(number<2)
{
returnfalse;
}
start++;
if(start>=number)
{
returntrue;
}
if(number%start==0)
{
returnfalse;
}
returnisPrime(start,input);//遞歸調用
}

❺ Java中 什麼是素數什麼條件

素數是指不能被除了一和自身整除的數,所以判斷num是不是素數只有從二開始一直除到num/2,都不能整除就返回true,表示是素數,否則返回false,表示不是素數。

❻ java怎麼判斷素數

1、目前使用較有效的方法是試除法。用試除法判斷一個自然數a是不是素數時,用各個素數從小到大依次去除a,如果到某一個素數正好整除,這個a就可以斷定不是素數;如果不能整除,當不完全商又小於這個素數時,就不必再繼續試除,可以斷定a必然是素數。
2、素數又稱質數。一個大於1的自然數,除了1和它本身外,不能被其他自然數整除,換句話說就是該數除了1和它本身以外不再有其他的因數;否則稱為合數。
3、素數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一。基於質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。目前為止,人們未找到一個公式可求出所有素數,所以還沒有固定的判斷公式。
4、一般記住100以內的素數就可以了。有2、3、5、7、11、13、19、17、23、29、37、31、41、47、43、53、59、61、71、67、73、83、89、79、97,一共25個。

❼ java 判斷素數

public boolean isPrime(int n){
for(int i=2;i<=n/2;i++){
if(n%i == 0)
return false;
}
return true;
}

❽ java程序素數輸出2為什麼不是素數,加什麼可以輸入2是素數

請輸入一個(大於1的)正數
for 裡面 i從1開始。
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。

❾ java輸出2—50所有的素數

public
class
PrimeNumber
{
public
static
void
main(String[]
args)
throws
IOException
{
System.out.print(primeNumber(50));
}
public
static
List<Integer>
primeNumber(int
num)
{
List<Integer>
list
=
new
ArrayList<Integer>();//
存放素數
for
(int
i
=
1;
i
<=
num;
i++)
{
if
(i
!=
1)
{//1不是素數
if
(list.size()
!=
0)
{
boolean
havePn
=
false;//標志;是否存在一個除數使該被除數被整除
for
(Integer
m
:
list)
{
if
(i
%
m
==
0)
{
havePn
=
true;//存在
}
}
if
(!havePn)
{//若不存在,該數是素數
list.add(i);
}
}
else
{
list.add(i);
}
}
}
return
list;
}
}
結果如下:
[2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47]

❿ java 1到100內的質數

int i,j;

for(i = 2; i <= 100; i++){//從2數到100,判斷之間的每一個數是否是質數

//下面的循環是質數判斷過程

for(j = 2; j <= i/2; j++){

if(i % j == 0)

break;//如果這個數能被一個數整除,那麼這個數不是質數。break的作用是跳出此次循環,進入下一次循環。

}

if(j > i/2){

System.out.println(i);//如果這個數不能被自身1/2的數整除,他就是質數,輸出這個數.System.out.println()這個語句就是輸出語句

}

}

System.out.println();//這句語句是多餘的,什麼也沒列印。

完整代碼及運行結果如圖。

拓展資料

質數(prime number)又稱素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。

這道題只要理解質數的計算方法就容易解答。

閱讀全文

與java素數2相關的資料

熱點內容
信號分析pdf 瀏覽:925
暴力刪除命令 瀏覽:801
qt如何編譯加快速度 瀏覽:903
php添加數據sql語句 瀏覽:717
免費的小說app有什麼 瀏覽:405
螺桿壓縮機進氣閥動畫 瀏覽:651
兩台伺服器如何做負載均衡 瀏覽:227
程序員的工資是漲的嗎 瀏覽:813
視頻存儲伺服器可以干什麼 瀏覽:463
創建文件夾安裝失敗怎麼回事 瀏覽:832
程序員高考隔了幾年 瀏覽:822
雲伺服器是哪一層 瀏覽:22
jit編譯器的jit什麼意思 瀏覽:330
我想清理手機中空白文件夾 瀏覽:976
電腦e盤文件夾刪不掉怎麼辦 瀏覽:607
外圓凹圓弧編程 瀏覽:461
html5編程題 瀏覽:839
乾燥機製冷壓縮機一開就跳動 瀏覽:388
吉林壓縮空氣流量監測 瀏覽:618
根據地址獲取經緯度php 瀏覽:13