黑马程序员技术交流社区

标题: 打印1~200间的素数和素数的个数 [打印本页]

作者: 小骆驼    时间: 2015-6-28 15:01
标题: 打印1~200间的素数和素数的个数
/*
需求:判断1-200之间有多少个素数,并输出所有素数

思路:通过一个for循环来遍历这个给定的区间,通过if来判断
        比如x%2==0,说明x能被2除所以不是素数,如果x/2!=0,说明x不能被2除,但是有可能被
        3整除,所以还要判断x%3是否==0,一次类推,x%4,%5....所以定义一个变量y,通过for
        循环来不断判断x%y是否==0,当y取值等于x/2时就可以了.
        在通过循环完x%y后,如果x%y都不==0,就说明这个x是素数.通过定义的变量++方式来记录
        素数的个数.
*/
class B
{
        public static void main(String[] args)
        {
                int a = 0;//定义一个变量来记录出现素数的个数.
                A:for (int x = 1;x<=200 ;x++ )
                {
                        if (x ==1)//1不是素数,所以排除出去
                                continue A;
                        if(x==2)//2是一个特殊的素数,只有2是偶数,其他的素数都是奇数.所以单独判断
                        {
                                System.out.println(x+"是素数");
                                a++;
                                continue A;
                        }       
                        for (int y = 2;y <= x/2 ;y++)
                        {
                                if(y!=(x/2))
                                {
                                        if (x%y==0)
                                                continue A;
                                }
                                else
                                        a++;//记录素数的个数
                        }
                        System.out.println(x+"是素数");
                }
                System.out.println("这个区间素数的个数是"+a+"个");
        }
}



作者: 夜空中最亮的星    时间: 2015-6-29 21:26
学习了,赞一哥!
作者: zlpiano    时间: 2015-6-29 21:51
不错,效率挺高的




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