黑马程序员技术交流社区

标题: 此代码求100之内的素数,求高手指点,谢谢 [打印本页]

作者: 穆帆    时间: 2015-9-25 22:39
标题: 此代码求100之内的素数,求高手指点,谢谢
public class Demo {
       

                public static void main(String[] args) {
                        int i, j;
                        for (i = 2; i <= 100; i++){//循环1
                                for (j = 2; j < i; j++){//循环2
               
                                        if (i % j== 0)
                                                break;
                                }
                                        if(j<i)
                                        continue;这里是什么意思,j不是一直是小于i吗?为什么还需要做判断?
                                       
                                        else
                                        System.out.print(i+"、");

        }
                }
        }



作者: 月影千华    时间: 2015-9-25 22:53
  1. /*
  2. 题目:判断101-200之间有多少个素数,并每五个一行,输出所有素数。
  3. 思路:用一个数除以2到它自身前一位数,如果能被整除,说明不是素数,否则就是素数。
  4. */
  5. class Sushu
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 int x,y,count=0;
  10.                 for (x=101;x<=200 ;x++ )
  11.                 {
  12.                         //boolean flag=true;
  13.                         for (y=2;y<x ;y++ )
  14.                         {
  15.                                 if(x%y==0)
  16.                                 {
  17.                                         //flag=false;                                                                                                                                        //判断一个数是不是素数,如果不是,显示结果为错误。
  18.                                         break;
  19.                                 }
  20.                         }
  21.                                 if (y>x/2)         // 如果结果不是错误,计数器加一次。
  22.                                                       // 因为false会判断出很多次,但true只有一次。
  23.                                 {
  24.                                         //System.out.println(x);
  25.                                         count++;
  26.                                 }
  27.                 }
  28.                 System.out.println("101到200之间一共有"+count+"个数是素数,它们分别是:");
  29.                 count=0;
  30.                 for (x=101;x<=200 ;x++ )
  31.                 {
  32. //                        boolean flag=true;
  33.                         for (y=2;y<=x/2 ;y++ )
  34.                         {
  35.                                 if(x%y==0)
  36.                                 {
  37.                                         //flag=false;
  38.                                         break;
  39.                                 }
  40.                         }
  41.                                 if (y>x/2)
  42.                                 {
  43.                                         /*
  44.                                         for (int l=1;l<=5 ;l++ )
  45.                                         {
  46.                                                 for (int i=1;i<=l ;i++ )
  47.                                                 {
  48.                                                         System.out.print("x="+x+"        ");
  49.                                                 }
  50.                                         System.out.print("\n");
  51.                                         */
  52.                                         System.out.print("x="+x+"\t");                                                                                                                //用count来进行5行一换行的打印。
  53.                                         if (++count%5==0)
  54.                                         {
  55.                                                 System.out.println();
  56.                                         }
  57.                                 }
  58.                 }
  59.                 System.out.println();
  60.         }
  61. }
复制代码


这题我刚进基础班时也做过哈哈,当时是这么做的。。。里面注释掉的都是开始写上去了后来觉得多余又改掉的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2