记录编号 310735 评测结果 EWEEWEWEWE
题目名称 number-b 最终得分 0
用户昵称 GravatarLetter 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;
}