不知道全局cnt为什么不行,一定要把cnt传到子函数,卡死人。
#include<cstdio>
#include <iostream>
#include <cstring>
#include<cstdlib>
using namespace std;
const int maxn=32768;
int n,a[maxn],cnt;
int f(int m,int cnt)
{
int cnt1=0;
for(int i=0;i<cnt;i++){
if(m%a[i]==0) cnt1++;
}
if(cnt1==0) return 1;
else return 0;
}
int main()
{
int t;
while(cin>>t)
while(t--){
int cnt=0,ans=0;
cin>>n;
for(int i=2;i<n;i++){
if(n%i==0){
a[cnt]=i;
cnt++;
}
}
for(int i=1;i<n;i++){
int x=f(i,cnt);
if(x==1) ans++;
}
cout<<ans<<endl;
}
}