2014-10-09 31 views
-1

這裏是我的代碼林還挺新的編程任何方式計劃的目標是到了把自己的線0和用戶輸入的值,每個之間的所有質數號碼嵌套的循環主要檢查

import java.util.Scanner; 
import java.math.*; 

public class Sforprime{ 

    public static void main (String[] args){ 
    double box = 0; 
    double boxxx = 0; 
    int po = 0; 
    int blub = 0; 
    int no = 1; 
    Scanner scan = new Scanner (System.in); 
    System.out.println("input cieling number"); 
    box = scan.nextInt(); 
    boxxx = Math.sqrt(box); 
    for (int batman = (int)box; batman >= 0; batman--){ 
     if (no == 1){ 
     no = 0; 
     } 
     else if (po == 0){ 
     System.out.println(blub); 
     po = 0; 
     } 
     blub = batman; 

     for (int mot = (int)boxxx; mot >= 2; mot--){ 
     if (po == 1){ 
     } 
     else if (box%mot == 0){ 
      po++; 
     } 
     } 
     if (po == 0){ 
     System.out.println(blub); 
     } 
    } 
    } 
} 

最終發生的是輸入數字後它什麼也不做。我在這裏做錯了什麼?

回答

0

您可以使用此邏輯:

 int n,p; 
     Scanner s=new Scanner(System.in); 
     System.out.println(「Enter required number upto which prime numbers are needed: 」); 
     n=s.nextInt(); 
     for(int i=2;i<n;i++) 
     { 
      p=0; 
      for(int j=2;j<i;j++) 
      { 
       if(i%j==0) 
       p=1; 
      } 
      if(p==0) 
       System.out.println(i); 
     } 
+2

他們想知道 - 「我在這裏做錯了什麼?」這是否回答這個問題? – ChiefTwoPencils 2014-10-09 04:20:18

1

既然你已經初始化INT MOT =(int)的boxxx 箱%MOT將是0和PO總是會得到遞增到1,因此永遠不會被打印出來。初始化mot = boxxx-1。但建議你使用上面的程序,因爲它更清潔