HDU-5778-abs(暴力)
来源:互联网 发布:js array 长度 编辑:程序博客网 时间:2024/06/05 17:28
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5778
题解:由于y质因数分解式中每个质因数均出现2次,那么y是一个完全平方数,设y=z*z,题目可转换成求z,使得每个质因数出现1次. 我们可以暴力枚举z,检查z是否符合要求
#include <bits/stdc++.h>using namespace std;#define bug cout<<"bug"<<endl#define INF 0x3f3f3f3f#define mod 1000000007const int maxn = 1e5+7;bool Div(long long n){ for(long long i=2; i*i<=n; ++i) { int flag=0; while(n%i==0) { flag++;n/=i; } if(flag>1)return 0; } return 1;}int main(){ int T; long long n,m; cin>>T; while(T--) { scanf("%I64d",&n); if(n<=4){cout<<4-n<<endl;continue;} m=sqrt(n); int i=0; long long poi,temp,ans; while(1) { poi=m+i; i++; if(poi*poi>=n && Div(poi)) { i=0;ans=poi*poi-n;break; } } poi=m; while(1) { poi=m-i; i++; if(poi*poi<n && Div(poi)) { ans=min(ans,n-poi*poi);break; } } cout<<ans<<endl; }}/*511124290871699579095*/
0 0
- HDU 5778(abs 暴力)
- HDU-5778-abs(暴力)
- HDU 5778 abs (数学+暴力枚举)
- Hdu 5778 abs (暴力/二分)
- HDU 5778 abs (暴力枚举)
- hdu 5778 abs【暴力枚举】
- HDU 5778 BestCoder Round #85 abs (暴力枚举)
- HDU 5778 abs(暴力枚举)——BestCoder Round #85 1003
- HDU 5778 abs(数论)
- 【HDU】5778 - abs(思维)
- hdu 5778 abs (数论)
- HDU 5778 abs
- HDU-5778 abs
- hdu 5778 abs
- hdu 5778 abs
- HDU-5778 abs(数论)
- HDU-5778 abs
- HDU 5778 abs
- 基于jQuery实现轮播特效(原理)
- 深入研究java.lang.Runtime类
- 【二分快速幂】病毒分裂
- MD5单向散列算法详解
- XCode 7.3.1(dmg) 官方直接下载地址(离线下载)
- HDU-5778-abs(暴力)
- 信息交换平台异步通信解决方案 Active MQ
- Android 软件盘回车键修改
- React Native是原生开发的末日吗?
- python导入本/子目录模块
- 初始化使用初始化列表!
- Java Socket 编程
- Anaconda version `GFORTRAN_1.4' not found
- 方格填数