JAVA每日随手练
1.打印素数
功能:打印 1 - 100 之间所有的素数
补充:质数(prime number)又称素数,定义为一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数。
代码:
public class test1 {
public static void main(String[] args) {
System.out.println("\n*******打印1 - 100 之间所有的素数*******"); //先换行再打印再换行,首尾均换行
int sum =0; //素数的个数
for(int i =2;i<=100;i++){
// 循环遍历:设要判断的数为i
// 利用for(int j=2;j <= i; j++)循环把2到它本身i的数都遍历一遍,
// 在遍历的过程中如果i%j==0,就记录这个数j
// 判断i是否和j相等,若i==j,就说明该数是素数。
for(int j=2;j<=i;j++){
if(i%j==0&&i!=j){
break; //素数为只能被和自身整除的数,不为素数时跳出当前循环
}else if(j==i){
if(sum%5==0){ //作用:打印的素数个数为5倍数时换行一次
System.out.println(); //输出空白且换行
}else{
System.out.print(j + " "); //输出j,其后跟一个空字符串(作用:与后面数隔开,类似空格)
}
sum++;
}
}
}
System.out.println("\n素数有" + sum + "个");
}
}
运行结果:
2.模拟登陆
功能:编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
代码:
import java.util.Scanner;
public class test2 {
public static void main(String[] args){
System.out.println("欢迎使用");
Scanner sc = new Scanner(System.in);
for(int i=2;i>=0;i--){
System.out.println("请输入6位密码:");
String a = sc.next();
if(a.equals("257832")){
System.out.println("登陆成功");
break;
}else{
System.out.println("密码错误,请重新输入,你还有"+i+"次输入机会");
}
}
sc.close();
}
}
运行结果:
3.求最大公约数
功能:求两个正整数的最大公约数
补充:最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
代码:
import java.util.Scanner;
public class 求两个正整数的最大公约数 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个整数");
int m = sc.nextInt();
System.out.print("请输入第二个整数");
int n = sc.nextInt();
if(m<n){ //如果m比n小,则把m与n互换,把m换成较大的值
int temp = m;
m = n;
n = temp;
}else{
while(m % n != 0){ //m整除n,存在余数,则继续循环,如果没有余数,则跳出循环
//7%4=3,temp==3,m==4,n==3,继续循环,temp==4%3==1,m==3,n==1;此时m%n==0,跳出循环,最大公约数是1
int temp = m % n; //取余
m = n;
n = temp; //把余数给n
}
System.out.println(m+"和"+n+"的最大公约数为:"+n);
}
sc.close();
}
}
运行结果: