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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

2.分析以下需求,并用代码实现:
        (1)打印1-100之间的所有素数及个数
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
        (4)如:2 3 5 7 11 //想了很久,没想明白啊~

7 个回复

倒序浏览
求质数的方法:
for(int i =1; i<100;i++){
   for(int j = 2;j<i;j++){
      if(i%j==0){
      //这里都是非质数
      }else{
      这里是质数
      }
  }
}
具体思路是第一层循环是1-100的数,用这个数i与第二层循环的j(j是2-i的值)如果出现余数说明吧是质数,反而else中是
回复 使用道具 举报
其实最麻烦的就是求素数,明白什么是素数一切就OK了。1.1-100只能被1和自身整除对吧,也就是说for循环嵌套完成以后 最多只有2个0 你只要出现一个0 就记录判断0的个数就可以了 记得最后每次内循环完了记录0个数的变量归零
回复 使用道具 举报
1-100用循环,每行打印五个可以用count计数,计数到5就打换行,素数的话就第二个循环从2到这个数的一半。
回复 使用道具 举报
public static void main(String[] args) {
                int count = 0;                        //计数器1:用于因数的累加
                int count2 = 0;                        //计数器2:用于质数的累加,记录质数总数
                for (int i =1;i <= 100 ;i++ ) {                //
                       
                        for (int j = 1;j <= i ;j++ ) {        //
                                if (i%j==0) {                                //判断是否能被整除
                                        count++;                                //能被整除时,说明此时的j为i的因数,计数器1+1
                                }
                        }
                        if (count ==2 ) {                                //判断计数器1是否为2,为2时说明这个数只能被1和其本身整除,这个数就是素数
                                System.out.print(i+" ");        //输出这个数
                                count2++;                                        //计数器2+1,即是质数总数+1
                                if (count2%5 == 0) {                //判断总数为五的倍数
                                        System.out.println();        //输出换行
                                }
                        }
                        count = 0;                                                //一个数判断完成后,计数器1归零
                }
                System.out.println("1-100间所有素数有"+count2+"个");        //输出素数总个数
        }
回复 使用道具 举报
很好的方法,很不错。
回复 使用道具 举报
qetu001212 发表于 2016-7-26 23:52
1-100用循环,每行打印五个可以用count计数,计数到5就打换行,素数的话就第二个循环从2到这个数的一半。 ...

基础太差我反复看了好久才有点明白什么意思,汗颜~
回复 使用道具 举报
skxs209839 发表于 2016-7-27 00:22
public static void main(String[] args) {
                int count = 0;                        //计数器1:用于因数的累加
                int count2 = ...

谢谢,很完美的解答,辛苦了,晚安
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马