bzoj 2986 Non-Squarefree Numbers
来源:互联网 发布:软件外包项目报价单 编辑:程序博客网 时间:2024/06/05 04:22
2986: Non-Squarefree Numbers
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 349 Solved: 162
[Submit][Status][Discuss]
Description
一个正整数K被称为squarefree,如果它没有一个D^2(D>1)这样的约数。
Input
读入一个正整数N
Output
找出第N个不是squarefree的数。1<=N<=10^10
Sample Input
10
Sample Output
27
Hint
前10个非squarefree的数
4 8 9 12 16 18 20 24 25 27
HINT
Source
【分析】
傻傻写不对二分
同 bzoj 完全平方数
【代码】
#include <cmath> #include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 1000000#define ll long long#define fo(i,j,k) for(i=j;i<=k;i++) using namespace std;const int mxn=1000005;bool vis[mxn];ll n,ans;int miu[mxn],pri[mxn];inline void init(){int i,j;fo(i,2,N){if(!vis[i]) pri[++pri[0]]=i,miu[i]=1;for(j=1;j<=pri[0] && i*pri[j]<=N;j++){vis[i*pri[j]]=1;if(i%pri[j]==0) break;miu[i*pri[j]]=-miu[i];}}}inline ll solve(ll mid){ll i,res=0,up=sqrt(mid);fo(i,1,up) res+=mid/(i*i)*miu[i];return res;}int main(){int i,j;init();scanf("%lld",&n);ll l=1,r=1000000000000LL;while(l<r){ll mid=l+r>>1;if(solve(mid)<n) l=mid+1;else r=mid;}printf("%lld\n",l);return 0;}
阅读全文
1 0
- bzoj 2986: Non-Squarefree Numbers
- bzoj 2986 Non-Squarefree Numbers
- bzoj 2986: Non-Squarefree Numbers (容斥原理)
- 【BZOJ】【P2986】【Non-Squarefree Numbers】【题解】【数论】
- BZOJ2986 Non-Squarefree Numbers
- [莫比乌斯函数] BZOJ 2986 Non-Squarefree Numbers & BZOJ 2440 [中山市选2011]完全平方数
- [BZOJ2986]Non-Squarefree Numbers(二分+容斥原理)
- bzoj2986 Non-Squarefree Numbers (莫比乌斯函数)
- Non--Abundant numbers
- Non-random numbers
- non-random numbers
- Squarefree number
- SPOJ 16637. Non-Square Free Numbers
- PE 113 Non-bouncy numbers (dp)
- hdu 3826 Squarefree number
- HDU 3826 Squarefree number
- Squarefree number + 数论
- hdu3826 Squarefree number
- Integer中equlas()方法的运用与问题总结
- 003 使用maven创建RESTful风格的spring MVC项目(重构)
- ftp 相关
- ubuntu python 2.7和3.4版本互换
- 《大型网站技术架构:核心原理与案例分析》拜读总结,第十一章——海量分布式存储系统Doris的高可用
- bzoj 2986 Non-Squarefree Numbers
- LeetCode 30. Substring with Concatenation of All Words
- java实训:类型运算转化法则,参数范围 ,静态全局变量
- Ubuntun 使用git
- loadrunner
- 16位单片机C语言实现PID调速心得
- 华中农业大学第五届程序设计大赛 EOne Stroke [枚举]【思维】
- 使用Notification实现站内信
- run “sudo xcodebuild -license” and then retry this command