2013-04-09 84 views
0

这是我到目前为止,我通常很擅长追踪程序,但我无法弄清楚我卡在哪里。它应该得到“N”并且用D等于N-1来修改它,而D大于1.一旦完成,它会比一个数字少一个数字,然后做同样的事情N大于2.至于“Count”,我只是加了它,以便我可以检查数字是否为素数。例如:如果计数= N-2,基本上每个数字从2到N-1,那么这个数字就是质数。查找和打印所有素数从1到N

public class Challenge14 { 
    public void inti() { 
    int count = 0; 
    int N = 7; 
    int D = N - 1; 
    int A = 0; 

    while (N > 2) { 
     D = N - 1; 

     while (D > 1) { 
     A = N % D; 
     D--; 

     if (A == 0) { 
      break; 
     } 

     else { 
      count++; 
     } 
     } 

     if (count == N - 2) { 
     System.out.println(N); 
     } 
     N--; 
    } 
    } 
} 
+2

你的问题是什么? – 2013-04-09 21:36:57

+0

是的,我认为你需要更多的工作。让算法在纸上算出第一个 – Coffee 2013-04-09 21:41:07

+0

我已经做了几千次,但我想这不会再伤害它 – 2013-04-09 21:55:43

回答

0

使用for循环。

for (int i = 1; i<N; i++) { 
System.out.println(i); 
} 
+0

为什么不把它写成'System.out.println(N); System.out .println(N + 1);'? – Kent 2013-04-09 21:51:14