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 }