8
注意他说的最后的序列 不只是除去2.3.7位置上的数 还要继续算到不能算
import java.util.ArrayList; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner s=new Scanner(System.in); int m=s.nextInt(); int n=s.nextInt(); if(m>=n||m<=0||m>=1000000||n<=0||n>=1000000) return; int a=seek(m,n,dft(n)); System.out.println(a); } public static ArrayList<Integer> dft(int b){ ArrayList<Integer> k=new ArrayList<>(); int luck=1; for(int i=0;i<b;i++){//加上0 以方便后面的计算 最后移除即可 k.add(i); } while(luck<b){ if(luck>=k.size()) break; int c=0; if(luck==1)c=2; else c=k.get(luck); for(int i=k.size()-1;i>=c;i--){ if(i%c==0) k.remove(i); } luck++; } k.remove(0); return k; } public static int seek(int a,int b,ArrayList<Integer> k){ int count=0; for(int i:k){ if(i>a&&i<b) count++; } return count; } }