public class prime{
        
        public static void main(String args[]){
        int n;   
        int i=2;
        for(n=2;n<=10;n++)
        {
        while(n%i!=0) i++;
           if(i==n) System.out.println(n+"是素数");
                        
        }
}
结果都2 3 4 5 6 7 8 9 10是素数}

解决方案 »

  1.   

    刚才错了一点,应该 是 
    public class prime{
            
            public static void main(String args[]){
            int n;   
            int i=2;
            for(n=2;n<=10;n++)
            {
            while(n%i!=0) i++;
               if(i==n) System.out.println(n+"是素数");
                            
            }
    }
    }
    结果都2 3 4 5 6 7 8 9 10是素数
      

  2.   

    up---------------------------------------------------------------------------------------------
    腰缠70元到月入近10万
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=453IT工程师 毕业4年我年薪涨到30万 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=51126岁青年坐拥千万域名资产 从小玩家变成CEO 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=515程序员的酸甜苦辣:告别Coding 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=341从月薪3500到700万(一)
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=170网络草根月赚3000的十种方法
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=517如果我是女的 我肯定不会嫁给做网站的
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=512
      

  3.   

    如果数字不实特别大的数字可以枚举,否则就要用同余法较快了写一个
    你的算法是没有将i=2写道if块中,修改如下
    int n;   
    int i=2;
    for(n=2;n<=100;n++)
    { while(n%i!=0) i++;
    if(i==n)
    {
    i=2;
    System.out.println(n+"是素数");
    } }
    //我还写了一个其他的
    public static boolean isPrimer(final long m)
    {
    long n = m;
    if(n==2||n==3||n==5||n==7||n==11|n==13||n==17||n==19)return true;
    if(n%2==0 ||n%3==0||n%5==0||n%7==0||n%11==0|n%13==0||n%17==0||n%19==0)
    {
    return false;
    }
    int i=23;
    if(n<=i)return false;
    //n %= (3*5*7*11*13*17*19);
    for(; i*i< n; i += 2)
    {
    if(n%i == 0) return false;
    }
    return true;
    }
    本人衷心希望有人写出更好的算法,有没有什么高效的求质数算法。
      

  4.   

    for(i=3;i<200;i+=2){
    int k=(int)Math.sqrt(i);
    boolean isPrime=true;
    for(int j=2;j<=k;j++){
    if(i%j==0)isPrime=false;
    }
    if(isPrime)
    System.out.print(""+i);
    }
    希望对你有所帮助!