题目描述&分析
//找素数-判断101-200之间有多少个素数,并且打印出所有素数
/*
* 说明
* 1、除了1和它本身以外,不能被其他正整数整除就叫素数
*/
//分析
/*
* 1、需要接收两个参数,代表区间的开始和结束
* 2、需要返回素数的个数
*/
代码实现
//功能函数
public static int searchPrimer(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;
}
}
//当前数字是素数
if (flag){
System.out.println(i);
count++;
}
}
return count;
}
测试程序
//主函数
public static void main(String[] args) {
//test
System.out.println("素数的个数是:" + searchPrimer(101, 200));
}
代码写法优化
将业务代码封装成一个方法,简化业务内部的代码。
//主函数
public static void main(String[] args) {
//test
System.out.println("素数的个数是:" + searchPrimer(101, 200));
}
//功能函数
public static int searchPrimer(int start,int end){
int count = 0;
for (int i = start; i <= end; i++) {
if (isPrimer(i)){
System.out.println(i);
count ++;
}
}
return count;
}
//判断一个数是否是素数
public static boolean isPrimer(int data){
for (int i = 2; i <= data / 2; i++) {
if (data % i == 0){
return false;
}
}
return true;
}