注解
1、利用筛法的思想找因数,速度更快,避免超时。
代码
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int CN;
scanf("%d", &CN);
for(int i=0; i<CN; i++){
int n;
scanf("%d", &n);
int a[n];
memset(a, 0, sizeof(a));
for(int j=2; j<n; j++){
if(n%j==0){
for(int k=j; k<n; k+=j){
a[k] = 1;
}
}
}
int sum = 0;
for(int j=0; j<n; j++){
if(a[j]){
sum++;
}
}
sum = n-1 - sum;
cout<<sum<<endl;
}
return 0;
}