1、判断一个数是否为质数
质数:只能被1和数本身整除的数就是质数
如果该数能被除了1 和它本身之外的任意一个数整除,则该数一定不是质数
如果该数不能被从2到该数减1的所有数都整除,则该数是质数
如果不用flag,就会出现每个循环都执行,10是质数,10不是质数,10是质数,10不是质数
while循环
import java.util.Scanner;
class Demo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要判断的数字:");
int num = sc.nextInt();
//flag 标记 代表num是否为质数 flag=true 是质数,flag=false 不是质数
boolean flag = true;
while(i<=num-1){
if(num%i == 0){
flag = false;
}
i++;
}
if(flag){
System.out.println(num+"是质数");
}else{
System.out.println(num+"不是质数");
}
}
}
for循环实现该案例:
1、从键盘获取一个要判断的数字
2、通过for循环判断该数字是否为质数
import java.util.Scanner;
class Demo{
public static void main(String[] args){
//1、从键盘获取一个要判断的数字
Scanner sc = new Scanner(System.in);
System.out.println("请输入要判断的数字:");
int num = sc.nextInt();
boolean flag = true;//默认num是质数
for(int i=2;i<=num-1;i++){
if(num%i == 0){
flag = false;
}
}
if(flag){
System.out.println(num+"是质数");
}else{
System.out.println(num+"不是质数");
}
}
}
增强版:输出1-1000以内的质数 双层循环 循环嵌套
- 把内层循环可以当成外层循环的循环体
- 在外层循环值固定的情况下,内层循环都执行完成才会执行下次外层循环
import java.util.Scanner;
class Demo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要判断的数字:");
int num = sc.nextInt();
for(int num=2;num<=10;num++){//代表2-1000以内的任意一个数
//对于当前num 判断num是否为质数
//num=9
boolean flag = true;
for(int i=2;i<=num-1;i++){//
if(num%i == 0){
flag = false;
break;//提高程序效率 跳出了for循环
}
}
if(flag){
System.out.println(num+"是质数");
}
}
}
}