黑马程序员技术交流社区
标题:
神奇的质数~~
[打印本页]
作者:
sandra_bae
时间:
2015-5-1 18:50
标题:
神奇的质数~~
/*
需求:打印出1到100之间所有的质数;每十个打印一行。
思路:1、质数num就是不能被1和它本身以外的任何数整除,即num%小于num/2的数值不为0;
2、首先,因为1不是质数,而且任何数都能被1整除要遍历1到100的数;
当遍历到某个数时,要判断其是否为质数;
3、判断一个数num是否为质数的方法是:首先要遍历从2到num/2的数,如果遍历到
能被num整除的数(模为0),则num不是质数,否则num就是质数;
4、根据第3步,在遍历从2到num/2时,需要一个if...else语句,if里要需要一个break语句,
当遍历到能被num整除的数时,来跳出当前循环;else语句是当确定num为质数时才执行,
所以可以用计数器count记录住,即count++。
5、因为要每十个打印一行,(如果学习了数组的话,就可以把质数添加进数组,然后当
脚标数+1能整除十的时候进行换行);现在要通过用一个boolean值记录住,然后通过
if语句,为真时打印这个数,而且当count能整除10时就换行。
*/
class Prime
{
public static void main(String[] args)
{
int count=0; //用于记录质数的个数,以及质数出现的顺序
boolean prime=true;
for(int num=2;num <= 100; num++)//遍历2到100的数,即num
{
for(int x=2;x <= num/2; x++)//遍历2到num/2的数,即x,用于除num,能整除则num不是质数,反之则是质数
{
if(num%x==0) //num有能整除的数,即该num不是质数
{
prime=false; //确定num不是质数,不用再遍历该2到该num的数
break;
}
else //num是质数,用count记录住质数出现的个数,而个数等于该质数出现的顺序
{
prime=true;
}
}
if(prime) //prime为boolean型变量,上面已经判断出prime为true时,num为质数
{
count++;
System.out.print(num+"\t");
if(count%10==0) //count为10的倍数时,换行。
{
System.out.print("\n");
}
}
}
}
}
复制代码
作者:
rightyuan521
时间:
2015-5-1 19:51
这么清晰!!
作者:
Sheng.cn
时间:
2015-5-1 21:53
不错
作者:
yelebron
时间:
2015-5-1 22:16
嗯 很简单的题目!!!!!
作者:
sandra_bae
时间:
2015-5-1 22:26
yelebron 发表于 2015-5-1 22:16
嗯 很简单的题目!!!!!
额,有点水~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2