五十道编程题目02 打印101至200之间的素数

来源:互联网 发布:淘宝店铺宝贝规格设置 编辑:程序博客网 时间:2024/04/28 00:47

------------------------------------------------------------------------------------------------------------------------

题目:判断101-200之间有多少个素数,并输出所有素数。 
   1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 
                则表明此数不是素数,反之是素数。

五十道编程题目的帖子:http://blog.csdn.net/typ0520/article/details/7882441

-----------------------------------------------------------------------------------------------------------------------

结果:101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 

唉,一时脑子没转过来弯,忘记了%(取余)这个运算符了,先开始思路放在转成double类型然后除循环的那个数,然后转为字符串,截取小数点后面的字符串,在根据这个判断,真是脑子被门夹了,写这写着突然想起来了,一个%搞定。

这个程序使得我更加明白,写代码之前一定要整理好思路(我想干什么,我可以干什么,我应该怎么做),然后碰到具体的细节时在琢磨,不然的话一个程序员拿到一个项目,不管三七二十一,上来就写代码,只会越写越糊涂,顾冬顾不住西,最后加班赶工期的也会是这样的程序员。加油喽,努力让自己做的更好

代码如下:

public class PrimeNumberTest {
/* 题目:判断101-200之间有多少个素数,并输出所有素数。 
 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 
    则表明此数不是素数,反之是素数。 */
public static void main(String[] args) {
for (int i = 101;i <= 201;i++) {
Number num = new Number(i);
if (num.isPrime()) {
System.out.print(i + " ");
}
}
}
}
class Number {
private int number;
private boolean prime;
public Number(int number) {
this.number = number;
this.prime = true;
defineType();
}
public void defineType() {
if (number <= 1) {
this.prime = false;
return;
}
int sqrtNum = (int)Math.sqrt((double)number);
for (int i = 2;i <= sqrtNum;i++) {
if (number % i == 0) {
this.prime = false;
break;
}
}
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public boolean isPrime() {
return prime;
}
}

原创粉丝点击