-------------------------
可以这么考虑,一盏灯被按奇数次就是开,被按偶数次就是关,而只有自己可以整除的人才会来操作,所以问题就变为:求序列上的每个在区间上的约数的个数,约数个数为奇数即为开。
AC代码:
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 9 int n=sc.nextInt(); 10 int k=sc.nextInt(); 11 12 for(int i=1;i<=n;i++){ 13 if(solve(i,k)%2==1) System.out.print(i+" "); 14 } 15 16 } 17 18 public static int solve(int n,int k){ 19 int res=0; 20 for(int i=1;i<=k && i<=n;i++) if(n%i==0) res++; 21 return res; 22 } 23 24 }