2013-03-25 55 views
1

我是編程新手,需要java程序的幫助。我想我的程序返回所有不是接收2,3,5和7我收到3,4,6的1到10之間適用於java的素數編程

for(int i=1; i<=10; i++){ 
     int factors = 0; 
     int j=1; 

     while(j<=i){ 
      if(i % j == 0){ 
       factors++; 
      } 
      j++; 
     } 
     if(factors==2){ 
      System.out.println(j); 
     } 
    } 

的素數,而8

+2

有在互聯網上這種方案的足夠的例子,請作出努力尋找他們 – 2013-03-25 15:35:45

+1

的OP試圖找到自己的程序中的錯誤。一個不同的程序的例子不會有幫助。 – iamnotmaynard 2013-03-25 15:43:03

回答

2

只是打印我,而不是j的

for(int i=1; i<=10; i++){ 
    int factors = 0; 
    int j=1; 

    while(j<=i){ 
     if(i % j == 0){ 
      factors++; 
     } 
     j++; 
    } 
    if(factors==2){ 
     System.out.println(i); 
    } 
} 
+0

感謝您的幫助 – idude 2013-03-25 16:09:08

7

您打印j,而不是i,你println()行更改爲:

System.out.println(i); 

您的結果與while-loop之後的j = i + 1'太大'。