public class Test {
專注于為中小企業提供網站設計、成都網站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業尼瑪免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上千多家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
public static void main(String[] args) {
int i, count = 0;
for(i=2; i=100; i++){
if(isPrimeNumber(i) == true){
count++;
System.out.printf("%6d", i);
if(count%5 == 0){
System.out.println();
}
}
}
//判斷一個數是否是素數,若是,返回true,否則返回false
public static boolean isPrimeNumber(int num){
int k = (int) Math.sqrt(num);
if(num == 2){
return true;
for(int i=2; i=k; i++)
if(num%i == 0)
return false;
return true;
}
}
擴展:
質數又稱素數。一個大于1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。
質數的個數是無窮的。歐幾里得的《幾何原本》中有一個經典的證明。它使用了證明常用的方法:反證法。具體證明如下:假設質數只有有限的n個,從小到大依次排列為p1,p2,……,pn,設N=p1×p2×……×pn,那么,
是素數或者不是素數。
如果
為素數,則
要大于p1,p2,……,pn,所以它不在那些假設的素數集合中。
如果 為合數,因為任何一個合數都可以分解為幾個素數的積;而N和N+1的最大公約數是1,所以不可能被p1,p2,……,pn整除,所以該合數分解得到的素因數肯定不在假設的素數集合中。因此無論該數是素數還是合數,都意味著在假設的有限個素數之外還存在著其他素數。所以原先的假設不成立。也就是說,素數有無窮多個。
其他數學家給出了一些不同的證明。歐拉利用黎曼函數證明了全部素數的倒數之和是發散的,恩斯特·庫默的證明更為簡潔,哈里·弗斯滕伯格則用拓撲學加以證明。
for(int?i?=2;i=100;i++)
{
flag=true?;?//每次都要有這個初值,如果不是,則flag會變成false
for(int?j=2;ji;j++)
{
if(i%j==0)
{
flag?=false;
break;
}
}
if(flag)
{
icount++;
System.out.println(i+"是素數!");
}
}
public?class?HelloWorld?{
public?static?void?main(String[]?args)?{
System.out.println("請輸入一個正整數n");
Scanner?input?=?new?Scanner(System.in);
int?n?=?input.nextInt();
for?(int?i?=?2;?i?=?n;?i++)?//?1不是素數,所以直接從2開始循環
{
int?j?=?2;
while?(i?%?j?!=?0)?{
j++;?//?測試2至i的數字是否能被i整除,如不能就自加
}
if?(j?==?i)
//當有被整除的數字時,判斷它是不是自身,若是,則說明是素數
{
System.out.println(i);?//?如果是就打印出數字
}
}
}
}
樓主的程序略有誤,下為修改后的代碼
public class Test {
public static void main(String[] args) {
int i =1,j =2;
for(i=1;i=100;i++) {
for(j=2;j=i;j++){
//素數是指除了1和自身外不能被任何數整除的數
//因此遍歷每一個小于i大于2的整數j
if(i%j==0)
//如果i能夠被j整除
if(i==j)
//如果當i等于j的時候則滿足i是素數的條件,即只能被1(
//j是從2計數的)和自身整除,因此i是素數
System.out.println(i +"是素數");
else
//在如果存在一個小于i大于2的整數j可以整除i,則i必不是
//素數,因此break操作.
break;//如果i可以被j整除且j不等于i,則跳出循環
}
}
}
}
親測可用..
判斷素數方法,你供參考,代碼如下:
public?class?SuNum?{
public?static?void?main(String[]?args)?{
if(getResult(4)){
System.out.println("素數");
}else{
System.out.println("非素數");
}
}
public?static?boolean?getResult(int?num)?{
boolean?isPrime?=?true;?//?定義布爾變量判斷是否素數.是:true;否:false
int?k?=?(int)?Math.sqrt(num);
for?(int?j?=?2;?j?=?k;?j++)?{
if?(num?%?j?==?0)?{
isPrime?=?false;?//?如果能夠有數整除num,那么就不是素數.
}
}
if?(isPrime)?{
isPrime?=?true;
}
return?isPrime;
}
}
滿意請采納!
加一個flag吧。
public?class?Prime03?{
public?static?void?main(String[]?args){
System.out.println("該程序是求6后面的一個素數");
int?i;
int?j;
for(i=6;;i++){
boolean?flag?=?true;
for(j=2;j=i/2;j++){
if(i%j==0){
flag?=?false;
break;
}else?if(i%j!=0){
continue;
}else{
break;
}
}
if(flag)?{
System.out.println(i);
break;
}
}
}
}
網站欄目:java中素數代碼 素數java語言程序編寫
本文鏈接:http://vcdvsql.cn/article40/dosdjho.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、手機網站建設、微信公眾號、營銷型網站建設、做網站、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯