java小练习

1、打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身

 1 import java.util.ArrayList;
 2 
 3 public class FindPrimeNumber {
 4 
 5     public static boolean isPrimeNum(int n){
 6         if(n==2){
 7             return true;
 8         }else if(n>2){
 9             for(int i=2;i<n;i++){
10                 if(n%i==0){
11                     return false;
12                 }
13             }
14             return true;
15         }
16         return false;
17     }
18 
19     public static void main(String[] args) {
20         ArrayList list = new ArrayList();
21         for(int i=100;i<=200;i++){
22             if(isPrimeNum(i)){
23                 list.add(i);
24             }
25         }
26         System.out.println(list.size()+"\n"+list);
27     }
28 }

 

2、输入两个正整数m和n,求其最大公约数和最小公倍数

 1 import java.util.Scanner;
 2 
 3 public class GCDAndLCM {
 4 
 5     /**
 6      * 题目:输入两个正整数m和n,求其最大公约数和最小公倍数
 7      * */
 8 
 9     /**
10      * 求最大公约数
11      * @param m
12      * @param n
13      * @return i
14      * */
15     public static int getGCD(int n,int m){
16         int i = (n>m?m:n);
17         for(;i>1;i--){
18             if(m%i==0&&n%i==0){
19                 return i;
20             }
21         }
22         return 1;
23     }
24 
25     /**
26      * 求最小公倍数
27      * */
28     public static int getLCM(int n,int m){
29         return n*m/getGCD(n,m);
30     }
31 
32     public static void main(String[] args) {
33         Scanner scanner = new Scanner(System.in);
34         System.out.println("请输入第一个正整数:");
35         int n = scanner.nextInt();
36         System.out.println("请输入第二个正整数:");
37         int m = scanner.nextInt();
38         int gcd = getGCD(n,m);
39         int lcm = getLCM(n,m);
40         System.out.println("最大公约数:"+gcd);
41         System.out.println("最小公倍数"+lcm);
42     }
43 }

 

3、判断n是不是质数

 1 import java.util.ArrayList;
 2 
 3 public class isPrimeNumber {
 4     /**
 5      * 判断n是不是质数
 6      * @param n
 7      * @return
 8      */
 9     public static boolean isPrimeNumber(int n){
10 
11         if(n == 2) return true;
12 
13         for(int i=2; i<=n/2; i++){
14             if(n % i == 0) return false;
15         }
16         return true;
17     }
18     public static void main(String[] args) {
19         ArrayList list = new ArrayList();
20         for(int i=100; i<=200; i++){
21             if(isPrimeNumber(i)){
22                 list.add(i);
23             }
24         }
25         System.out.println("共有素数"+list.size());;
26         System.out.println(list);
27     }
28 }

 

4、题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制

 

 1 import java.util.Scanner;
 2 
 3 public class TestAdd {
 4 
 5     /**
 6      * @author VellBibi
 7      *【程序8】 TestAdd.java
 8      *题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
 9      *几个数相加有键盘控制。
10      *1.程序分析:关键是计算出每一项的值。
11      * @param i 数字
12      * @param j 数量
13      */
14 
15     public static double addSum(int i,int j){
16         double sum1 = i;
17         double sum2 = sum1;
18         for(int n=1;n<j;n++){
19             sum1 = sum1 + i * Math.pow(10,n);
20             sum2 = sum1 + sum2;
21         }
22         return sum2;
23     }
24     //2+22+222+2222
25     public static void main(String[] args) {
26         Scanner scanner = new Scanner(System.in);
27         System.out.println("请输入整数数字");
28         int i = scanner.nextInt();
29         System.out.println("请输入整数数字个数");
30         int j = scanner.nextInt();
31         System.out.println(addSum(i,j));
32     }
33 }

 5、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

 1 package TestTest;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Scanner;
 5 
 6 public class FindNumber {
 7 
 8     /**
 9      * 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
10      * 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,
11      * 如果开方后的结果满足如下条件,即是结果。请看具体分析:
12      * */
13 
14     //判断一个数,加上100后是一个完全平方数的余数为0,再加上168又是一个完全平方数的余数为0,Math.sqrt(n)
15     public static boolean findNumber(int n){
16         if(Math.sqrt(n+100)%1==0&&Math.sqrt(n+268)%1==0){
17             return true;
18         }
19         return false;
20     }
21 
22     //循环判断1-某数范围内的数据
23     public static void main(String[] args) {
24         System.out.println("请输入判断范围最大值:");
25         Scanner scanner = new Scanner(System.in);
26         ArrayList<Integer> list = new ArrayList<Integer>();
27         int n = scanner.nextInt();
28         for(int i=1;i<n;){
29             if(findNumber(i)){
30                 list.add(i);
31             }
32             i++;
33         }
34         System.out.println(list.toString());
35     }
36 }

 

转载于:https://www.cnblogs.com/kasen95/p/9481126.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值