1717 好数

来源:互联网 发布:飞升化身决升级数据 编辑:程序博客网 时间:2024/06/06 21:42
1717 好数
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
 收藏
 关注
有n个数  a[1],a[2],...,a[n]开始都是0
现在进行操作 t从1~n依次增加
每次把下标时t的倍数的数都反转(0变成1,1变成0) 
如果最后a[i]为0,那么称此时的i为好数。
现在对于给定的n,求这时候的好数个数。
n<=1e15
Input
一个数n,表示有n个数。(n<=1e15)
Output
一个数,表示好数的个数。
Input示例
2
Output示例
1
UsedToBe (题目提供者)

这是一道送分题qwq...但像我这样不会用函数的就老老实实打循环了,靠谱最要紧。
看完题目就能想到好数就是约数个数为偶数的数。
那么约数个数是奇数的数是哪些数呢?对,就是完全平方数,然后本题就AC了。

#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <cmath>#define ll long longusing namespace std;int main(){ll n,ans;scanf("%lld",&n);ans=n;for(ll i=1;i*i<=n;i++) ans--;printf("%lld\n",ans);return 0;}


原创粉丝点击