黑马程序员技术交流社区
标题:
给大家发个小练习,代码写的不好请谅解。
[打印本页]
作者:
kelin410
时间:
2016-3-7 13:16
标题:
给大家发个小练习,代码写的不好请谅解。
/*
需求:分析以下需求,并用代码实现:
(1)打印1-100之间的所有素数及个数
(2)每行输出5个满足条件的数,之间用空格分隔
(3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
(4)如:2 3 5 7 11
思路:
1.因为是1~100之间的数,所以要用for循环遍历1~100的数。又因为是求素数,所以1直接排除在外。只需要遍历2~100即可。
2.判断是否为素数的办法就是将这个数除以2~自身减1的所有数。一旦这个数能被整除,那么这个数就不是素数。
这里我定义一个Judgement类,并在这个类中的定义一个isPrime方法去实现该功能。
4.要统计个数就要用计数器思想。在for循环外定义一个变量count。每判断出一个素数count就自增1。
5.因为每行只能输出5个数字,所以用count变量%5来判断是否已经成功打印出5个素数。如果是就插入一个换行符。
6.外循环执行完以后将count也打印出来。
*/
class Task2 {
public static void main(String[] args) {
int count = 0;
Judgement ju = new Judgement(); //创建一个自定义类,该类具有判断某个数是否为素数的功能。
for (int x = 2; x <= 100; x++) {
if (Judgement.isPrime(x)==true) { //判断当前遍历的数是否为素数
System.out.print(x+"\t");
count++; //记录打印次数。
if (count % 5 == 0) { //判断是否已经打印了5次,如果是就换行。
System.out.println();
}
}
}
System.out.println("素数的个数为:"+count);
}
}
//定义一个类,该类具有判断某个数是否为素数的功能。
class Judgement {
static boolean isPrime (int num) { //定义一个静态的函数,该函数的返回值为 boolean,需要一个int类型的参数。
//判断传进来的参数是否为素数,如果不是返回 false,否则返回 true。
for (int x = 2; x < num; x++) {
if (num % x == 0) {
return false;
}
}
return true;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2