黑马程序员技术交流社区

标题: 求质数的问题 [打印本页]

作者: 依然超级赛亚人    时间: 2014-7-16 22:21
标题: 求质数的问题
本帖最后由 依然超级赛亚人 于 2014-8-13 08:11 编辑

哥们给我出了一个求质数的问题,让我用程序体现出来,想了好几天没想出来,跪求大神指点迷津!

问题的描述:一个整数如果只能被自己和1整除,那么这个数就叫做质数。请编写程序,输出1~100之间的所有质数。

作者: 张盼    时间: 2014-7-16 22:30
我这是打印三位数的质数,你看看把,都差不多,
  1. public static void main (String []args)
  2. {
  3. int x,y;
  4. for (x = 100;x < 1000 ;x++ )
  5. {
  6. for (y = 2;y < x ;y++ )//对2到这个数本身之间的数进行遍历,使之与这个数取模
  7. {
  8. if(x % y == 0)//如果取模的值为0,就说明这个数不是质数,程序结束
  9. {
  10. break;
  11. }
  12. }
  13. if(y >= x)//如果已经遍历到和这个数相等的数,取模的值都不为0,就说明这个数是质数
  14. {
  15. System.out.println(x);
  16. }
  17. }
  18. }
复制代码


作者: icris    时间: 2014-7-16 23:52
  1.         public static void find() {
  2.                 for (int i = 1; i < 101; i++) {
  3.                         boolean flag = true;
  4.                         for (int j = 2; j <= Math.pow(i, 0.5); j++) {
  5.                                 if (i%j==0) {
  6.                                         flag = false;
  7.                                         break;
  8.                                 }
  9.                         }
  10.                         if (flag) {
  11.                                 System.out.println(i);
  12.                         }
  13.                 }
  14.         }
复制代码


作者: ソi苆僞lè袮    时间: 2014-7-17 00:28
public static void main(String[] args) {

                 
                for(int i=1;i<=100;i++){
                        int count=0;//count表示被整除的次数
                        for(int j=1;j<=i;j++){
                               
                                if(i%j==0){
                                        //如果整除的话count加1,
                                          count++;
                                }if(count>2)break;        //这里思路是质数只能被1和它本身整除,如果能被第三个数整除了说明不是质数了
                                                                        //就跳出内层循环       
                        }
                        if(count==2){  
                                //这里判断满足只被两个数整除的就输出
                                        System.out.println(i);
                                       
                                }
                }
        }

作者: 依然超级赛亚人    时间: 2014-7-17 23:08
ソi苆僞lè袮 发表于 2014-7-17 00:28
public static void main(String[] args) {

                 

恩啊,领教了!:handshake
作者: 依然超级赛亚人    时间: 2014-7-17 23:09
icris 发表于 2014-7-16 23:52

多谢赐教!:handshake
作者: 依然超级赛亚人    时间: 2014-7-17 23:12
张盼 发表于 2014-7-16 22:30
我这是打印三位数的质数,你看看把,都差不多,

一眼看到照片就感觉似曾相识,再看名字果然是同学啊,呵呵。受教了!:handshake你也要学Android吗?报名了吗?应经准备的差不多了吧?
作者: J.twt    时间: 2014-7-17 23:33
加油,慢慢的写多了你就会信手拈来
作者: 张盼    时间: 2014-7-18 00:05
依然超级赛亚人 发表于 2014-7-17 23:12
一眼看到照片就感觉似曾相识,再看名字果然是同学啊,呵呵。受教了!你也要学Android吗?报名 ...

准备上完课去考试




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