虽然简单但还是要记录一下
一开始的数据肯定超时,所以要缩小N的范围,取一半,这一半满足的对应的另一半也是满足的。
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int gcd(int x,int y)
{
int m=x,n=y;
int c;
while(n!=0)
{
c=m%n;
m=n;
n=c;
}
return m;
}
int main()
{
int n;
cin>>n;
while(n--)
{
int a;
cin>>a;
int count=0;
//int c=2*b;
for(int i=2;i<a/2;i++)
if(gcd(a,i)>1)
count++;
if(a%2!=0)
cout<<a-count*2-1<<endl;
else
cout<<a-1-count*2-1<<endl;
}
return 0;
}