码迷,mamicode.com
首页 > 其他好文 > 详细

求1到200之间的素数

时间:2019-11-18 23:29:20      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:循环   int   重复   while   结果   png   代码   赋值   public   

public class Test5 {
    public static void main(String[] args) {
        int j;
        for(int i= 2;i<=200;i++){
            j=2;
            while (i%j!=0){
                j++;
                if(i==j){
                    System.out.println(i);
                }
            }
        }
    }
}

自己的思想存在误区,受冒泡排序影响过甚

冒泡排序

public class demo{
    public static void main(String[] args) {
        int[] numbers =new int[]{1,5,8,2,3,9,4};
        int i ,j;
        for(i=0;i<numbers.length;i++){
            for(j=0;j<numbers.length-1-i;j++){
                if(numbers[j]<numbers[j+1]){
                    int tem = numbers[i];
                    numbers[j]=numbers[j+1];
                    numbers[j+1]=temp;
         }
            }
        }
         System.out.println("从大到小排序后的结果是:");
        for(i=0;i<numbers.length;i++)
            System.out.print(numbers[i]+" ");
    }
}    

冒泡排序,总之遍历外层,然后相邻的数字两两比较,然后定制交换规则,两两交换,主要注意j的条件j<numbers.length-1-i即可

对于该题找出素数

错误思想的代码

public class Test8 {
    public static void main(String[] args) {
        for (int i=1;i<201;i++){
            for(int j=1;j<i;j++){
                if(i%j!=0){
                    System.out.println(i);
                }
            }
        }
    }
}

输出一连串1到200的数,且有重复。

技术图片

思想如果一个数从1到200,然后这个数除以从2到该数本身-1,如果整除没有0,则该数为素数。

后来仔细想了以下,如果i =6的时候,那么j可以为1到5,然后能让6除以1到5之间的数并且没有余数的只有当j=4,j=5的时候,所以会输出两次6。

所以这种遍历不合理,应该是当遍历到1-5的时候,当遍历到2的时候已经不满足条件,这个时候应该直接摒弃6,i的值+1,而不是再继续遍历,这样总会有不能整除的数,导致输出不是素数的6.

重新审视正确答案

外层依然遍历从2到200的数,内存循环换成while循环,while循环条件依然为i%j!=0,当满足这个条件之后,才可以j++,然后当i==j的时候,这个时候才可以输出i。

for循环和while循环的适用性(如果循环次数在执行循环体之前就已确定,一般用for语句;如果循环次数是根据循环体的执行情况确定的,一般用while语句或者do-while语句。)

注意赋值j要在外层循环下赋值,如果一开始直接int j=2;

求1到200之间的素数

标签:循环   int   重复   while   结果   png   代码   赋值   public   

原文地址:https://www.cnblogs.com/qiannianguyao/p/11886354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!