题目1:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
题目2:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
package ecut.lly.test;
import org.junit.Test;
public class ReviewJava {
/**
* 寻找某一区间质数,统计个数并输出
* @param startn 开始数字
* @param endn 结束数字
* @return 质数个数
*/
public int countPrimeNumber(int startn , int endn) {
int count = 0;
for(int i = startn ;i<endn ;i+=1 ) {
boolean b =false;
for(int j = 2; j<=Math.sqrt(i); j++) {
if(i%j==0) {b=false; break;}
else {b=true;}
}
if(b==true) {count++; System.out.println(i);}
}
System.out.print(startn+"~"+endn+"之间的质数个数是:"+count);
return count;
}
/**
* 统计“水仙花数“及打印输出
* @return 三位数中水仙花数个数
*/
public int countSxflower() {
int count = 0;
for(int m=100; m<1000; m++) {
int a = m/100;
int b = m%100/10;
int c = m%10;
if(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3) == m) {
count++;
System.out.println(m);
}
}
System.out.println("水仙花数个数:"+count);
return count;
}
@Test
public void test01() {
ReviewJava rj1 = new ReviewJava();
int j = rj1.countPrimeNumber(101, 200);
}
@Test
public void test02() {
ReviewJava rj2 = new ReviewJava();
int y = rj2.countSxflower();
}
}