A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
需求:判断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+"个");
        }
}


2 个回复

倒序浏览
学习了,赞一哥!
回复 使用道具 举报
不错,效率挺高的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马