-------------------------
可以这么考虑,一盏灯被按奇数次就是开,被按偶数次就是关,而只有自己可以整除的人才会来操作,所以问题就变为:求序列上的每个在区间上的约数的个数,约数个数为奇数即为开。
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 }
题目来源: