HDU5778 abs
来源:互联网 发布:韩国人看中国知乎 编辑:程序博客网 时间:2024/04/28 08:56
开方上下找每个质因数都出现一次的数,很快就能找到。
注意:(LL)sqrt(n)的平方值一般小于n,向上找的起点应该是(LL)sqrt(n)+1。
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>#include<stack>#include<cstring>#include<map>#include<string>#define maxn 110000#define LL long longusing namespace std;const LL LLONG=(((LL)1<<63)-1);bool get(int temp){ LL i=2; if(temp<2) return false; while(i*i<=temp) { int num=0; while(temp%i==0) { temp/=i; num++; if(num>1) return false; } i++; } return true;}int main(){ int T; scanf("%d",&T); while(T--) { LL n; scanf("%lld",&n); LL temp=(LL)sqrt(n); LL ans1=-1; for(LL i=temp;i>1;--i) { if(get(i)) { ans1=i; break; } } LL ans2=-1; for(LL i=temp+1;;++i) { if(get(i)) { ans2=i;// cout<<"ans2=="<<ans2<<endl; break; } } LL fin; if(ans1==-1) { fin=abs(n-ans2*ans2);// cout<<"1PP"<<endl; } else if(ans2==-1) {// cout<<"2PP"<<endl; fin=abs(n-ans1*ans1); } else fin=min(abs(n-ans2*ans2),abs(n-ans1*ans1)); printf("%lld\n",fin); }}
0 0
- HDU5778 abs
- HDU5778 abs(数论)
- hdu5778 abs 简单数论
- hdu5778 abs 素数筛法 暴力枚举
- hdu5778
- hdu5778 枚举
- ABS
- abs
- abs
- abs
- abs
- abs
- HDU5778之暴力枚举
- abs ()函数
- ABS ,SPI
- abs()函数
- ABS(actionbarsherlock)
- shell abs
- 检查表及总结 - 《代码大全》
- 数学悖论
- 如何在RedHat下设置打开Terminal终端快捷键
- Xcode开发小技巧---Xcode收藏常用代码
- ArcGIS中的Add-In开发示例
- HDU5778 abs
- 获取独立的要素类
- maven常用的几个内置环境变量
- 事件以及事件捕获、事件冒泡、事件委托
- markdown 编辑器
- 栈实验之回文串判定
- Java review--NIO
- Android百度地图开发(一)之初体验
- DP为王——动态规划法学习笔记