51nod 1717 好数(找规律)
来源:互联网 发布:淘宝点击分享怎么点击 编辑:程序博客网 时间:2024/05/16 19:26
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 (题目提供者)
Visual C++的运行时限为:1000 ms ,空间限制为:131072 KB 示例及语言说明请按这里
允许其他 AC 的用户查看此代码,分享代码才能查看别人的代码并有机会获得勋章
首先可以知道的是一个数的因数个数有偶数个时,该数的倍数操作后一定是0。
所以就只用找那些因数个数是奇数的数就好啦。想想就知道是完全平方数。呢答案不就是n-完全平方数的个数。
#include<set> #include<map> #include<stack> #include<queue> #include<vector> #include<string> #include<math.h> #include<time.h> #include<stdio.h> #include<iostream> #include<string.h> #include<stdlib.h> #include<algorithm> #include<functional> using namespace std;typedef long long ll;#define inf 1000000000 #define mod 1000000000 #define maxn 1100005 #define PI 3.1415926 #define lowbit(x) (x&-x) #define eps 1e-9int main(void){ll n, i, ans = 0;scanf("%lld", &n);for (i = 1;i*i <= n;i++)ans++;printf("%lld\n", n - ans);return 0;}
阅读全文
1 0
- 51Nod 1717 好数(找规律)
- 51nod 1717 好数(找规律)
- 51nod 1770数数字(找规律)
- 51Nod 1717 好数【规律题】水题
- 51nod 俄罗斯方块(找规律(构造))
- 51nod 1536不一样的猜数游戏(找规律)
- 51nod 1770 数数字 找规律,注意进位,时间复杂度O(n)
- 51nod 1536 不一样的猜数游戏 (找规律+素数筛)
- 51Nod - 1247 找规律
- 51nod 1717 好数 (水题)
- 51nod 1770 数数字(规律)
- 51nod 1717 好数
- 51nod 1717 好数
- 51 nod 1717 好数
- 51nod 1717 好数
- 51nod 1717 好数
- 51nod 1717 好数
- 51nod-1717-好数
- 读《跟我一起学Makefile》有感
- 常用的DOS命令
- 今天复习javaSE的一些知识
- 类是什么?
- mybatis一对一关系 association的使用
- 51nod 1717 好数(找规律)
- 【学习笔记六】
- HGDB-pgbouncer配置
- Linux--第一天 vmware centos6.5 查看网络ip 127.0.0.1
- OpenCV 实现canny边缘检测
- java中 final、finally、finalize的区别
- HDOJ HDU 1087 Super Jumping! Jumping! Jumping!
- 4sum
- 关于Canvas中的"The canvas has been tainted by cross-origin data"跨域问题