记录编号 |
310735 |
评测结果 |
EWEEWEWEWE |
题目名称 |
number-b |
最终得分 |
0 |
用户昵称 |
Letter zZZz |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
0.433 s |
提交时间 |
2016-09-22 23:00:13 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include <algorithm>
#include <math.h>
#include <fstream>
#include <cstdio>
using namespace std;
ifstream fin ("numberb.in");
ofstream fout("numberb.out");
double gcd(int a,int b)
{
int t;
if (a<b)
{
t=a;
a=b;
b=t;
}
while (t!=0)
{
t=a%b;
a=b;
b=t;
}
return a;
}
double work(int a,int b)
{
double c=sqrt(a*a+b*b);
if (c-int(c)==0)
return 1;
else return 0;
}
int main()
{
int ans=0,m,n[3000]={0};
fin>>m;
for (int i=1;i<=m;)
{
fin>>n[i];
i++;
}
sort(n,n+m);
int i=1,j=2;
for (;i<=m-1;)
{
for (;j<=m&&n[i]!=0;)
{
if (gcd(n[i],n[j])==1&&work(n[i],n[j])==1)
n[i]=0;
j++;
}
i++;
}
for (int k=1;k<=m;k++)
{
ans+=n[k];
//fout<<n[k]<<" ";
}
fout<<ans;
return 0;
}