51nod 1080 两个数的平方和

没心情写数学题啦啊   好难啊

#include<bits/stdc++.h>
using namespace std;
set<int> s;
set<int>::iterator it;
int main ()
{
    s.clear();
    for(int i=0;i*i<=1e9;i++)
        s.insert(i*i);
    int n; scanf("%d",&n);
    bool flag =0;
    for(int i=0;i*i<=n/2;i++)
    {
        int t = n-i*i;
        if(s.find(t) != s.end())
        {
            flag=1;
            printf("%d %d
",i,int(sqrt(t)));
        }
    }
    if(flag ==0)
        puts("No Solution");
}
原文地址:https://www.cnblogs.com/Draymonder/p/7381876.html