解题思路:枚举一部分数据,然后找规律,发现只有当i是完全平方数的时候最后才会变成1的,剩下的全部是0,则最后好数的个数就是n-sqrt(n)。。。注意输入输出都用long long
代码如下:
打表函数:
// for(int i=1;i<=30;i++) // printf("%d ",i); // printf("\n"); // for(int i=1;i<=30;i++) // { // for(int j=i;j<=30;j++) // if(j%i==0) a[j]= !a[j] ? 1 : 0; // for(int i=1;i<=30;i++) // printf("%d ",a[i]); // printf("\n"); // // } AC代码: #include <stdio.h> #include <math.h> int main() { long long n; scanf("%lld",&n); printf("%lld\n",n-(long long)sqrt(n)); return 0; }