黑马程序员技术交流社区
标题:
我实在理解不了 求质数的程序
[打印本页]
作者:
菜鸟小6
时间:
2014-10-26 21:46
标题:
我实在理解不了 求质数的程序
求详细说明
作者:
夏夏更健康
时间:
2014-10-26 21:59
本帖最后由 夏夏更健康 于 2014-10-26 22:03 编辑
我也是菜鸟,我的题里边这样写的
for(int x= 100;x<1000;x++)
{
int count = 0;//定义一个计数器
for(int y =2;y<x;y++)
{
if(x%y==0)
count++;
}
if(count==0)//因为质数只能被1跟它本身整除,如果这区间内没有能被它整除的就说明它是质数喽
{
System.out.print(x+"\t");
}
作者:
javaAndroid
时间:
2014-10-26 23:04
质数,即只能被本身和1整除。
具体的定义可以搜一下
单独检查的有2。1不算质数。
在写代码的时候,只需要检查从2(包括2)开始
到这个数的一半(可以不包括一半,包括了2就没必要包括一半了)。
因为超过一半的话
那肯定不能整除
只要在2到这个数字一半的区间内存在可以整除的数字
那这个数字就不是质数。
作者:
马个了黑_邓
时间:
2014-10-27 10:57
public class Test06 {
public static void main(String[] args)
{
boolean b = false;
for(int x = 100;x<=999;x++)// 建立for嵌套循环
{
for(int y=2;y<=(x-1);y++) //从2开始除, 直到它本身-1,
{
if(x%y==0) //判断它的被除数里面有没有能整除的
{
b = false;
break; //如果能整除就跳出里面的循环
}
else
{
b=true; //这里需要把里面循环的每个数都判断下才能判断出
}
}
if(b==true) //判断是不是质数
{
System.out .print(x+"\t"); // 打印出质数
}
}
}
}
作者:
Rain2692
时间:
2014-10-27 18:22
关于质数问题主要是在循环那个地方为什么取平方根的问题,这是数学里面解的对称性原理,以平方根为界,解也就是可以被整除的数是均匀分布的,这是数字的分布特点,一种规律而已。
作者:
菜鸟小6
时间:
2014-10-27 20:56
javaAndroid 发表于 2014-10-26 23:04
质数,即只能被本身和1整除。
具体的定义可以搜一下
单独检查的有2。1不算质数。
很详细 说的很好 建议给你加技术分
作者:
axing110
时间:
2014-10-28 21:29
class xiancheng extends Thread
{
public static void main(String[] args) throws Exception {
ArrayList<Integer> a=new ArrayList<>();
for(int i=2;i<100;i++)
{
for(int j=2;j<=i;j++)
{
if(i==j)
{
a.add(j);
}
if(i%j==0)
{
j=i;
}
}
}
for(Integer ss:a)
{
System.out.println(ss);
}
}
}小程序一枚希望有帮助哦
复制代码
作者:
OnlyStyle
时间:
2014-10-28 23:16
直接根据对小于自己一半的整数求余结果即可判断,有为零的就加一次计数器,要是最后计数器为零,就是质数。
作者:
戏言丶
时间:
2014-10-29 00:32
3楼说的很不错,不过最终还是自己理解了好
作者:
烟默year
时间:
2014-10-30 00:47
我是来学习的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2