标签:
5
1112
4290
8716
9957
9095
23
65
67
244
70
题目大意:
解题思路:
这个题目就是一个暴力,因为 每个质因数恰好出现两次 所以
PS: 当时没有特判
/**
2016 - 08 - 05 下午
Author: ITAK
Motto:
今日的我要超越昨日的我,明日的我要胜过今日的我,
以创作出更好的代码为目标,不断地超越自己。
**/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#include <set>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int INF = 1e9+5;
const int MAXN = 1e6+5;
const LL MOD = 1e4+7;
const double eps = 1e-7;
const double PI = acos(-1);
using namespace std;
bool Judge(LL x)
{
for(LL i=2; i*i<=x; i++)
{
int sum = 0;
while(x%i==0)
{
sum++;
x /= i;
}
if(sum > 1)
return 0;
}
return 1;
}
int main()
{
int T;
LL x;
cin>>T;
while(T--)
{
cin>>x;
if(x <= 3LL)///特判
cout<<4LL-x<<endl;
else
{
LL p1 = (LL)sqrt(x);
LL p2 = p1 + 1;
while(1)
{
if(Judge(p1))
break;
p1--;
}
while(1)
{
if(Judge(p2))
break;
p2++;
}
LL ans1 = p1*p1;
LL ans2 = p2*p2;
cout<<min(abs(ans1-x), abs(ans2-x))<<endl;
}
}
return 0;
}
HDU 5778 abs(暴力枚举)——BestCoder Round #85 1003
标签:
原文地址:http://blog.csdn.net/qingshui23/article/details/52131323