黑马程序员技术交流社区

标题: 素数的求法 [打印本页]

作者: handy    时间: 2016-6-24 11:34
标题: 素数的求法
本帖最后由 handy 于 2016-6-24 11:39 编辑

/*
        需求:
                (1)打印1-100之间的所有素数及个数
                (2)每行输出5个满足条件的数,之间用空格分隔
                (3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
                (4)如:2 3 5 7 11
*///方法1: 统计能整除的除数的个数,以此判断是否为素数
class Homework2 {
        public static void main(String[] args) {
                int count = 0;
                for (int i = 2;i <= 100 ;i++ ) {
                        int count1 = 0;        //        记录能整除的个数
                        for (int j =2;j < i ;j++ ) {
                                if (i % j == 0) {
                                        count1 ++;
                                }
                        }
                        if (count1 == 0) {
                                count++;
                                System.out.print(i + " ");
                                if (count % 5 == 0 ) {
                                        System.out.println();
                                }
                        }
                }
                System.out.println("1-100的素数共有: " + count);
        }
}

//方法2:通过返回能否整除其余数的boolean值,判断是否为素数
                        class Test03 {
                                public static void main(String[] args) {
                                        //1.定义计数器统计素数的个数
                                        int count = 0;
                                        //2.遍历判断是否是素数并打印
                                        for (int i = 2; i < 100; i++) {

                                                if (isPrime(i)) {
                                                        count++;
                                                        System.out.print(i + " ");
                                                        if(count%5==0) {
                                                                System.out.println();
                                                        }
                                                }

                                        }
                                        System.out.println();
                                        System.out.println("1-100的素数的个数为:" + count);
                                }

                                //判断是否是素数的方法
                                public static boolean isPrime(int num) {
                                        for (int x = 2; x < num; x++) {// 从2到99来寻找
                                                if ((num % x) == 0) {
                                                        return false;
                                                }
                                        }
                                        return true;
                                }
                        }







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