题目不难,弄个数组弄个标记,弄几个循环就可以了。
import java.util.Scanner;
public class Main{
public static void main(String[] args)throws Exception{
Scanner cin=new Scanner(System.in);
int caseNum=cin.nextInt();
boolean[] Tag;
while(cin.hasNext()){
int n=cin.nextInt();
int m=0;
Tag=new boolean[n];
for(int i=0;i<n;i++){
Tag[i]=false;
}
for(int i=1;i<n;i++){
for(int j=1;i*j+j-1<n;j++){
int k=i*j+j-1;
Tag[k]= Tag[k]==false ? true : false ;
}
}
for(int i=0;i<n;i++){
if(Tag[i]==false)m++;
}
System.out.println(m);
}
}
}