学习编程还是要做大量练习呀,不能只学不练,一个题目可以从多个角度去解决,可以全方面巩固知识点。每天记录一点点,daydayup!
题目:判断101-200之间有多少个素数,并输出所有素数
思路:1,定义一个101-200的数值区间;2,从区间内取一个数;3,遍历2到该数的一半数据,看这个数是否能被整除;4,不能被整除为素数,反之不被整除便不是素数。5,输出结果
方法1:利用bootean变量,当该数可以被整除时,输出false;不能整除时输出true,最后统计数量即可
public class sushudemo {
public static void main(String[] args) {
System.out.println("素数合计为:"+la(101, 200));
}
public static int la(int start,int end){
int count = 0;
for (int i = start; i <=end ; i++) {
boolean flag = true;
for (int j = 2; j < i /2; j++) {
if (i % j == 0){
flag = false;
break;
}
}
if(flag){
System.out.println(i);
count ++;
}
}
return count;
}
}
方法2:添加标签选项(OUT),当可以被整除时,使代码跳出循环;最后记录出素数数值
public class sushudemo1 {
public static void main(String[] args) {
System.out.println(la(101, 200));
}
public static int la(int start, int end) {
int count = 0;
OUT:
for (int i = start; i <= end; i++) {
for (int j = 2; j < i / 2; j++) {
if (i % j == 0) {
continue OUT;
}
}
System.out.println(i);
count++;
}
return count;
}
}
方法3:使用多个方法,分步骤完成;第一个方法为记录数值区间,第二个方法为看是否能被整除,可以被整除输出false,不能则输出true。
public class sushudemo2 {
public static void main(String[] args) {
System.out.println(la(100, 200));
}
public static int la (int start,int end){
int count = 0;
for (int i = start; i <=end ; i++) {
if (ll(i)){
System.out.println(i);
count++;
}
}
return count; }
public static boolean ll(int date){
for (int i = 2; i <= date/2 ; i++) {
if (date % i == 0){
return false;
}
}
return true; }
}
?撒花!