51nod1080 两个数的平方和

来源:互联网 发布:php 获取数组元素 编辑:程序博客网 时间:2024/05/24 07:38
给出一个整数N,将N表示为2个整数i j的平方和(i <= j),如果有多种表示,按照i的递增序输出。例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1种)Input一个数N(1 <= N <= 10^9)Output共K行:每行2个数,i j,表示N = i^2 + j^2(0 <= i <= j)。如果无法分解为2个数的平方和,则输出No SolutionInput示例130Output示例3 117  9#include "iostream"#include "cmath"using namespace std;int main(){bool flag = false;long long num, half;cin >> num;half = sqrt(num);if (num == 1){flag = true;cout << 0 << " " << 1 << endl;}else{for (int i = 1; i <= half; i++)//这里如果half换成sqrt,那么每循环一次就调用一次,会过不去{for (int j = i; j <= half; j++){if (num == i*i + j*j){flag = true;cout << i << " " << j << endl;}}}}if (flag == false){cout << "No Solution" << endl;}getchar();getchar();return 0;}

0 0
原创粉丝点击