hdu 1286找新朋友 (简单数学题)

点击打开链接

第一次暴力求解,tle

#include"stdio.h"
#include"string.h"
int fun(int x,int y)
{
	while(x>y?(x%=y):(y%=x));
	return x+y;
}
int main()
{
	int T,n,i,j,ans,a[32768];
	
	scanf("%d",&T);
	while(T--)
	{
		memset(a,0,sizeof(a));
		scanf("%d",&n);
		ans=0;
		for(i=2;i<=n/2;i++)
		{
			if(n%i==0)
			{
				for(j=1;j*i<n;j++)
					a[i*j]=1;
			}
		}
		for(i=1;i<n;i++)
			ans+=a[i];
		printf("%d\n",n-1-ans);
	}
	return 0;
}


你可能感兴趣的:(hdu 1286找新朋友 (简单数学题))