第六章 方案 例6-7 打印格式化素数

来源:互联网 发布:java虚拟机设置内存 编辑:程序博客网 时间:2024/06/05 06:49

  //判断是素数的函数,返回结果布尔型

  public static boolean isPrime(intnum){

     boolean isP=true;

     for(intch=2;ch<=num/2;ch++){

     if(num%ch==0)

     {

       isP=false;

       break;

     }

     }

     return isP;

  }

其中,判断素数要进行多次判断,多次判断肯定才是肯定;一次否定即可判定非素数。

//非素数

     if(num%ch==0)

     {

       isP=false;

       break;

     }

 

这与判定是否为回文类似:

//非回文

if(ch.charAt(start)!=ch.charAt(end))

     {

       isP=false;

       break;

     }

。If(否定条件){false;break;}

上面for循环也可用while代替

//判断素数

int ch=2;

while(ch<=num/2){

if(num%ch==0){

       isP=false;

       break;

}

ch++;

}

 

可以看出判断素数和判定回文的方法是一样的

//判定回文

     int start=0;

     int end = ch.length()-1;

     boolean isP=true;

     ///

     while(start<end){

     if(ch.charAt(start)!=ch.charAt(end))

     {

       isP=false;

       break;

     }

     ///

     start++;

     end--;

     }

     if(isP)

       System.out.println(" is P ");

     else

       System.out.println(" No ");

 

例6-7中问题分解思路

1、   判断素数函数,返回结果布尔型

2、   输出前n个素数

3、   格式化输出前n个素数

第二步的函数:

public staticvoidprintprime(intnumberofprime){

     int num1=2;

     int count=0;

     while(count<numberofprime){

     if(isPrime(num1)){

       count++;

 System.out.println("%-5s",num1)

}

        num1++;

     }

  }

public staticvoidmain(String[] args){

System.out.println("The first 10 prime numbers are: \n ");

     printprime(10);

第三步的函数:将System.out.println("%-5s",num1)

改为

//5个一行输出

if(count%5==0)

     System.out.printf("%-5s\n",num1);

else

     System.out.printf("%-5s",num1);

 

0 0
原创粉丝点击