黑马程序员技术交流社区

标题: 素数 [打印本页]

作者: yeqiang    时间: 2014-4-20 22:57
标题: 素数
class sushu
{
public static void main(String[] args)
{
  int a=5;
  shu(a);
}
public static int shu(int num)
{
  int i;
  int count=0;
   for(i=2;i<sqrt(num);i++)
  {
               if(num/i==0)
   {
       return 0;
              System.out.println(num+"不是素数");
   }
      else
   {
       return 1;
          count ++;
     System.out.println(num+"是素数!");
   }
  }
  System.out.println("共有"+count+"个素数!");
}
}


作者: 错过了今天    时间: 2014-4-20 23:09
   for(i=2;i<sqrt(num);i++)
这句应该改成   for(i=2;i<Math.sqrt(num);i++)

作者: kuroro自走核炮    时间: 2014-4-21 10:18
本帖最后由 kuroro自走核炮 于 2014-4-21 10:21 编辑
  1. class sushu
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int a=5;
  6.                 shu(a);
  7.         }
  8.         public static void shu(int num)//从函数内容中判断你这个函数功能是判断一个数是否是素数,那么返回int值没有意义。如果你想要判断一个范围中有多少个素数,那么你这个函数功能则完全不能胜任。
  9.         {
  10.                 int i;
  11.                 int count=0;
  12.                 //for(i=2;i<sqrt(num);i++)Match.sqrt()是取平方根的方法……,不明白你这一步是什么意思。
  13.                 for(i=2;i<num;i++)
  14.                 {
  15.                         //if(num/i==0)素数的概念是不能被整除,那么需要取余数计算。你用除法计算能得出什么呢?
  16.                         if(num%i==0)
  17.                         {        
  18.                                 //return 0;这个零返回的没有意义啊。                        
  19.                                 System.out.println(num+"不是素数");
  20.                                 
  21.                         }
  22.                         else
  23.                         {
  24.                                 //return 1;这个1也返回的没有意义。
  25.                                 count ++;
  26.                                 //System.out.println(num+"是素数!");如果一个数仅仅是和一个数不能整除,就能判断这个数是素数,是不正确的。必须要保证除了1和他本身之外都不能整除才是素数。
  27.                         }
  28.                 }
  29.         if ((count+2)==num)
  30.                 System.out.println(num+"是素数!");
  31.                 //System.out.println("共有"+count+"个素数!");
  32.         }
  33. }
复制代码

作者: z1342802487    时间: 2014-4-21 10:38
取平方更要加等号。
作者: yeqiang    时间: 2014-4-21 11:54
错过了今天 发表于 2014-4-20 23:09
for(i=2;i

非常感谢,我纠结这一句好长里就是不知道怎么改,这下总算整出来了
作者: yeqiang    时间: 2014-4-21 11:55
kuroro自走核炮 发表于 2014-4-21 10:18

非常感谢,让你费心了,感觉受益不少!
作者: yeqiang    时间: 2014-4-21 11:58
z1342802487 发表于 2014-4-21 10:38
取平方更要加等号。

恩好的我在改改




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