import java.util.ArrayList; import java.util.Scanner; public class Main { // 定义输出数字 // 定义0-9 private static final String num0[] = new String[] { " - ", "| |", " ", "| |", " - " }; private static final String num1[] = new String[] { " ", " |", " ", " |", " " }; private static final String num2[] = new String[] { " - ", " |", " - ", "| ", " - " }; private static final String num3[] = new String[] { " - ", " |", " - ", " |", " - " }; private static final String num4[] = new String[] { " - ", "| |", " - ", " |", " " }; private static final String num5[] = new String[] { " - ", "| ", " - ", " |", " - " }; private static final String num6[] = new String[] { " - ", "| ", " - ", "| |", " - " }; private static final String num7[] = new String[] { " - ", " |", " ", " |", " " }; private static final String num8[] = new String[] { " - ", "| |", " - ", "| |", " - " }; private static final String num9[] = new String[] { " - ", "| |", " - ", " |", " - " }; // 定义操作符* private static final String num10[] = new String[] { " ", " ", "*", " ", " " }; // 整合 private static final String allNum[][] = { num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, num10 }; public static int[] dealLt10(int temp) { String target = "" + temp; int len = target.length(); int[] res = new int[len]; for (int i = 0; i < len; i++) { res[i] = target.charAt(i) - 48; } return res; } public static ArrayList<Integer> getPrimeNumber(int num) { // 结果数组 ArrayList<Integer> result = new ArrayList<Integer>(); // 最小质数 开始 int starNumber = 2;// 定义最小的质数 // 判断1 if (num <= 1) { result.add(0); } else { // 在质数小于输入的数时,进行循环 while (starNumber <= num) { if (starNumber == num) {// 当质数等于输入的数时,直接输出 // 输出字符 // result.add(num); if (num >= 0 && num <= 9) result.add(num); else { int[] temp = dealLt10(num); for (int c = 0; c < temp.length; c++) { result.add(temp[c]); } } break; } else if (num % starNumber == 0) {// 当输入的数与质数的余数为0时,输出这个质数 // 输出字符 // result.add(starNumber); if (num >= 0 && num <= 9) result.add(starNumber); else { int[] temp = dealLt10(starNumber); for (int c = 0; c < temp.length; c++) { result.add(temp[c]); } } result.add(-1); num = num / starNumber;// 把剩下的结果赋给num } else {// 在余数不为0时,质数递增 starNumber++; } } } return result; } public static void printNumber(ArrayList<Integer> result) { // 循环输出 for (int n = 0; n < 5; n++) { for (int m = 0; m < result.si敏感词t temp = result.get(m); if (temp == -1) System.out.print(allNum[10][n]); else System.out.print(allNum[temp][n]); } System.out.println(""); } } public static void main(String[] args) { int num; Scanner cin = new Scanner(System.in); while (cin.hasNextInt()) { num = cin.nextInt(); // 获取素数数组 ArrayList<Integer> result = getPrimeNumber(num); // 打印数组 printNumber(result); } } } 给个参考,自己写的,没在线测试
点赞 评论

相关推荐

昨天 19:43
湖北大学 C++
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务