用java怎么求解质数?
class Qu9
{
public static void main(String args[])
{
for(int i=2;i<100;i++)
{
if(i%2!=0 && i%3!=0)
System.out.println(i);
}
}
}
上面的算法好像不对啊?

解决方案 »

  1.   

    只能被自身或1整除的数才叫质数,弄清概念就好写了.class Qu9
    {
    public static void main(String args[])
    {
    for(int i=2;i<100;i++)
    {
    int j = 2;
    for (;j < i; j ++)
    if(i%j ==0 ) break;
    if (j == i)
    System.out.println(i);
    }
    }
    }
      

  2.   

    哈哈,太搞笑了吧.用这个吧.1.3.5.7.自已判断
    if(! ((i%2==0) || (i%3==0) || (i%5)==0))
      

  3.   

    public class sushu
    {
    public static void main(String[] args)
    {
    boolean [] a = new boolean[100];
    for (int i=0;i<100;i++)
    {
    a[i]=true;
    }
    for (int j=2;j<100;j++)
    {
    for (int k=2;k<=99/j;k++)
    {
    a[j*k]=false;
    }
    }
    for (int m=2;m<100;m++)
    {
    if(a[m])
    {
    System.out.println(m);
    }
    }
    }
    }这个应该可以,我没有调,楼主试试吧!
      

  4.   

    liligugu(古古)的说法是正确的只要不能被其平方根整除,比平方根大的数也就不能整除了
      

  5.   

    class PrimeNumber
    {
    public static void main(String args[])
    {
    for(int i=2;i<100;i++)
    {
    int j = 2;
    for (;j < (int)Math.sqrt(i); j ++)
    if(i%j ==0 ) break;
    if (j == i)
    System.out.println(i);
    }
    }
    }
      

  6.   

    class AA
    {
    public static void main(String args[])
    {
    for(int i=1;i<100;i++)
                       for(int j=2;j<=i+1;j++)
    {
                                if(i!=1)
                                {
                                if(i%j==0&&i==j)
                                 System.out.println(i);
                                 else if(i%j==0&&i!=j)
                                 break;
                                 }
                                 else
                                 System.out.println(i);
    }
    }
    }上边的程序是完整的求质数的一个小例子!是本人刚刚写!
    楼主可以使用一下看看,可能有不足之处,望指正!
    顺道接分!
      

  7.   

    public class PrimeNumber {
    public static void main(String[] args) {
    System.out.print(2 + " ");
    int count = 1;
    label: for (int i = 3; i < 100; i += 2) {
    for (int j = 2; j <= Math.sqrt(i); j++) {
    if (i % j == 0)
    continue label;
    }
    System.out.print(i + " ");
    if (++count % 6 == 0)
    System.out.println();
    }
    }
    }
    这样效率稍高一些
      

  8.   

    只能被自身或1整除的数才叫质数,弄清概念就好写了.
    对于一个自然数必须要要做,sqrt(n)次循环!
    n除以1到sqrt(n)取整之后的数字都不能整除,n才是质数!
    因为质数与质数的乘积不能保证也是质数!
    比如!3*5 = 21。
      

  9.   

    leomay() 当中有一个地方还是稍稍有点问题的吧
    if (j == i)
    System.out.println(i);
    除了j==2的时候,其它时候j!=i啊,因为你的j只判断道sqrt(i).
    所以输出结果除了2,就没有别的了
      

  10.   

    to:hljaae(酒独倾) 改成以下这个样子就OK了。class PrimeNumber
    {
    public static void main(String args[])
    {
    for(int i=2;i<100;i++)
    {
    int j = 2;
    int sqrti=(int)Math.sqrt(i);
    for (;j < sqrti+1; j ++)
    if(i%j ==0 ) 
    break;
    if (j == sqrti+1)
    System.out.println(i);
    }
    }
    }