package com.raylew.algorithm.other; /* 幸运数的另一种解法,题目要求参见LanQiao12_3.java */ public class LuckyNumber2 { public static void main(String[] args) { int m = 1, n = 3; int total = 0; int[] arr = new int[1000000]; boolean[] use = new boolean[1000000]; for (int i = 0; i < 1000000; i++) { arr[i] = i; } int luckyNum = 2; int index = 1; int length = arr.length; while (true) { int j = 0; for (int i = 1; i < length; i++) { if (use[i] == false) { j++; if (j % luckyNum == 0) { use[i] = true; } } } for (int i = index + 1; i < length; i++) { if (use[i] == false) { index = i; break; } } luckyNum = arr[index]; if (luckyNum >= n) { break; } if (luckyNum > m && luckyNum < n) { total++; } } System.out.println("total:" + total); } }