分5行列出从2开始的100个素数
我的代码是这样写的:
public class Baigei
{
public static void main(String[] args)
{
int m,i=0;
do if(Count(m))
{
i++;
System.out.print(m+" ");
if(i%20==0)
System.out.println(); }while(i!=100);
}
public static boolean Count(int m)
{
int n;
for(n=2;n<m;n++)
{
if(m%n==0)
{
return false;
}

}
if(n==m)
return true;
return false;
}
}
可是编译时说我m没有初始化,这个代码应该怎么改呢?请大家帮帮忙~

解决方案 »

  1.   

    public static void main(String[] args) {

    int m,i,k,h=0,leap=1;
    for(m=2;h<100;m++)
    { k=(int) Math.sqrt(m+1);
    for(i=2;i<=k;i++)
    if(m%i==0)
    {leap=0;break;}
    if(leap==1)
    {
    System.out.print(m+",");h++;
    if(h%10==0){
    System.out.println();
    }
    }
    leap=1;
    }
    }
      

  2.   



    public static void main(String[] args) {

    int m,i,k,h=0,leap=1;
    for(m=2;h<100;m++)
    { k=(int) Math.sqrt(m+1);
    for(i=2;i<=k;i++)
    if(m%i==0)
    {leap=0;break;}
    if(leap==1)
    {
    System.out.print(m+",");h++;
    //分5行
    if(h%20==0){
    System.out.println();
    }
    }
    leap=1;
    }
    }
      

  3.   

    public class Baigei {
    public static void main(String[] args) {
    int m = 1;
    do {
    if (Count(m)) {
    System.out.print(m + " ");
    }
    if (m % 20 == 0) {
    System.out.println();
    }
    m++;
    } while (m <= 100);
    } public static boolean Count(int m) {
    int n;
    for (n = 2; n <= m / 2; n++) {
    if (m % n == 0) {
    return false;
    }
    }
    return true;
    }
    }
      

  4.   


    public class Baigei {
    public static void main(String[] args) {
    int m = 1;
    int i= 1 ;
    do {
    if (Count(m)) {
    System.out.print(m + "\t");
    if (i % 20 == 0) {
    System.out.println();
    }
    i++;
    }
    m++;
    } while (i <= 100);
    } public static boolean Count(int m) {
    int n;
    for (n = 2; n <= m / 2; n++) {
    if (m % n == 0) {
    return false;
    }
    }
    return true;
    }
    }
      

  5.   


    public class Baigei

    public static void main(String[] args) { 
    int m=2,i=0; 
    do {
    if(Count(m)) { 
    i++; 
    System.out.print(m+" "); 
    }
    if(i%20==0) System.out.println();
    m++;
    }while(i!=100); 

    public static boolean Count(int m) 

    int n; 
    for(n=2;n <m;n++) { 
    if(m%n==0) { 
    return false; 


    if(n==m) return true; 
    return false; 

    } 应该把m初始化为2,因为题目要求从2开始!把if放括号里面去,这样这就对了!