题目链接:

abs

Time Limit: 2000/1000 MS (Java/Others)   

 Memory Limit: 131072/131072 K (Java/Others)

Problem Description
Given a number x, ask positive integer y≥2, that satisfy the following conditions:
1. The absolute value of y - x is minimal
2. To prime factors decomposition of Y, every element factor appears two times exactly.
 
Input
The first line of input is an integer T ( 1≤T≤50)
For each test case,the single line contains, an integer x ( 1≤x≤1018)
 
Output
For each testcase print the absolute value of y - x
 
Sample Input
 
5
1112
4290
8716
9957
9095
 
Sample Output
 
23
65
67
244
70
 
题意:
 
给一个x,然后让你找一个y,分解质因子后y的质因子次幂均为2,使abs(y-x)最小;
 
思路:
 
枚举x周围的那些数,看是否符合条件然后更新答案就好了;
 
AC代码:
 
  1. /************************************************
  2. ┆ ┏┓   ┏┓ ┆
  3. ┆┏┛┻━━━┛┻┓ ┆
  4. ┆┃       ┃ ┆
  5. ┆┃   ━   ┃ ┆
  6. ┆┃ ┳┛ ┗┳ ┃ ┆
  7. ┆┃       ┃ ┆
  8. ┆┃   ┻   ┃ ┆
  9. ┆┗━┓   ┏━┛ ┆
  10. ┆  ┃   ┃  ┆      
  11. ┆  ┃   ┗━━━┓ ┆
  12. ┆  ┃  AC代马   ┣┓┆
  13. ┆  ┃    ┏┛┆
  14. ┆  ┗┓┓┏━┳┓┏┛ ┆
  15. ┆   ┃┫┫ ┃┫┫ ┆
  16. ┆   ┗┻┛ ┗┻┛ ┆
  17. ************************************************ */
  18.  
  19. #include <iostream>
  20. #include <cstdio>
  21. #include <cstring>
  22. #include <algorithm>
  23. #include <cmath>
  24. #include <bits/stdc++.h>
  25. #include <stack>
  26.  
  27. using namespace std;
  28.  
  29. #define For(i,j,n) for(int i=j;i<=n;i++)
  30. #define mst(ss,b) memset(ss,b,sizeof(ss));
  31.  
  32. typedef long long LL;
  33.  
  34. template<class T> void read(T&num) {
  35. char CH; bool F=false;
  36. for(CH=getchar();CH<'0'||CH>'9';F= CH=='-',CH=getchar());
  37. for(num=0;CH>='0'&&CH<='9';num=num*10+CH-'0',CH=getchar());
  38. F && (num=-num);
  39. }
  40. int stk[70], tp;
  41. template<class T> inline void print(T p) {
  42. if(!p) { puts("0"); return; }
  43. while(p) stk[++ tp] = p%10, p/=10;
  44. while(tp) putchar(stk[tp--] + '0');
  45. putchar('\n');
  46. }
  47.  
  48. const LL mod=1e9+7;
  49. const double PI=acos(-1.0);
  50. const LL inf=1e18;
  51. const int N=1e5+10;
  52. const int maxn=1e5+4;
  53. const double eps=1e-8;
  54.  
  55. int cnt,vis[N],prime[N];
  56. inline void Init()
  57. {
  58. cnt=0;
  59. For(i,2,maxn)
  60. {
  61. if(!vis[i])
  62. {
  63. for(int j=2*i;j<maxn;j+=i)
  64. vis[j]=1;
  65. prime[++cnt]=i;
  66. }
  67. }
  68. }
  69.  
  70. inline int check(LL x)
  71. {
  72. for(int i=1;i<=cnt;i++)
  73. {
  74. if(x<prime[i])break;
  75. if(x%prime[i]==0)
  76. {
  77. x=x/prime[i];
  78. if(x%prime[i]==0)return 0;
  79. }
  80. }
  81. return 1;
  82. }
  83.  
  84. int main()
  85. {
  86. int t;
  87. read(t);
  88. Init();
  89. while(t--)
  90. {
  91. LL n;
  92. read(n);
  93. LL temp=sqrt(n+0.5),ans=inf;
  94. int flag=0;
  95. for(LL i=0; ;i++)
  96. {
  97. if(check(temp+i)&&(temp+i)*(temp+i)>=2){ans=min(ans,abs((temp+i)*(temp+i)-n));flag=1;}
  98. if(check(temp-i)&&temp>i&&(temp-i)*(temp-i)>=2)ans=min(ans,abs((temp-i)*(temp-i)-n)),flag=1;
  99. if(flag&&i>=6)break;
  100. }
  101. cout<<ans<<"\n";
  102. }
  103. return 0;
  104. }

  

hdu-5778 abs(暴力枚举)的更多相关文章

  1. HDU 5778 abs (枚举)

    abs 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5778 Description Given a number x, ask positive ...

  2. HDU 5778 abs (暴力枚举)

    abs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Problem De ...

  3. HDU 5778 abs (素数,暴力)

    题意:给定一个数x,求正整数y≥2y\geq 2y≥2,使得满足以下条件: 1.y-x的绝对值最小 2.y的质因数分解式中每个质因数均恰好出现2次. 析:由于y质因数分解式中每个质因数均出现2次,那么 ...

  4. BestCoder Round #50 (div.1) 1002 Run (HDU OJ 5365) 暴力枚举+正多边形判定

    题目:Click here 题意:给你n个点,有多少个正多边形(3,4,5,6). 分析:整点是不能构成正五边形和正三边形和正六边形的,所以只需暴力枚举四个点判断是否是正四边形即可. #include ...

  5. HDU 5778 abs (BestCoder Round #85 C)素数筛+暴力

    分析:y是一个无平方因子数的平方,所以可以从sqrt(x)向上向下枚举找到第一个无平方因子比较大小 大家可能觉得这样找过去暴力,但实际上无平方因子的分布式非常密集的,相关题目,可以参考 CDOJ:无平 ...

  6. HDU 5778 abs 数学

    http://acm.hdu.edu.cn/showproblem.php?pid=5778 这题的意思就是找离x最近的一个数y,且y是一个完全平方数,还是所有质因子都只能出现两次的完全平方数 一开始 ...

  7. HDU 4462(暴力枚举)

    因为题目当中的k比较小k <= 10,所以可以直接枚举,题目里面由两个trick, 一个是如果每个点都可以放稻草人的话,那么答案是0, 另外一个就是如果可以放稻草人的点不用被照到.知道了这两个基 ...

  8. HDU 5778 abs

    题意转化一下就是寻找一个数P,要求P质因素分解完后,质因素没有重复,还要保证abs(P*P-x)最小. 暴力,在sqrt(x)附近向下向上分别枚举一下. #pragma comment(linker, ...

  9. HDU 6351暴力枚举 6354计算几何

    Beautiful Now Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

随机推荐

  1. 使用构建工具gradle打包时,遇到的中文问题和解决方式

    1.使用gradle  clean  war 命令将项目打成war包.这一过程gradle没有提示报错. 2.将得到的myapp.war复制到tomcat下webapps(部署war包) 3.启动to ...

  2. jsp 导出excel

    设置头文件 <% response.setHeader( "Pragma ", "public"); response.setHeader( " ...

  3. JavaScript--基于对象的脚本语言学习笔记(一)

    1.两种嵌入js的方式    使用javascript前缀构建url:<a href="javascript:alert('执行JavaScript. .')">执行j ...

  4. 资源重复 uac.res resource kept(转)

    一般按照网上流传的方法制作UAC.RES放到DELPHI程序里面来就可以出现盾牌.但是某些DELPHI的项目在添加了UAC.RES后编译会报错,例如: [DCC Error] E2161 Warnin ...

  5. 有状态的EJB对象和无状态的EJB对象

    一,定义有状态Bean和无状态Bean 有状态Bean: @Stateful @Remote public class StatefulEjbBean implements StatefulEjb{ ...

  6. POJ 1163 The Triangle(经典问题教你彻底理解动归思想)

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38195   Accepted: 22946 De ...

  7. VMware unrecoverable error解决方法

    把开发环境部署在虚拟机里面,重装系统后不须要再反复部署开发环境. 可是有时候异常退出虚拟机会导致错误.之前出现打开虚拟机之后,系统分辨率错误,就是点击的位置和显示的位置不一样. 于是又一次关了虚拟机, ...

  8. NDK以及C语言基础语法(二)

    一.字符串类:(属于类类型) -String (在C++中才有) 使用之前必学引入String 类型: 引入String头文件(系统的头文件): #include <string>   p ...

  9. Windows上搭建Kafka

    搭建环境: 1,安装JDK JAVA_HOME: C:\Program Files (x86)\Java\jre1.8.0_60(这个是默认安装路径,如果安装过程中更改了安装目录,把更改后的路径填上就 ...

  10. 利用Docker Compose快速搭建本地测试环境

    前言 Compose是一个定义和运行多个Docker应用的工具,用一个YAML(dockder-compose.yml)文件就能配置我们的应用.然后用一个简单命令就能启动所有的服务.Compose编排 ...