51Nod 1080 兩個數的平方和

2022-04-12 09:40:05 字數 1125 閱讀 3285

給出乙個整數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 solution

input示例

130
output示例

3 11

7 9

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 

12using

namespace

std;

13#define lowbit(x) (x&(-x))

14#define max(x,y) (x>y?x:y)

15#define min(x,y) (x16

#define max 100000000000000000

17#define mod 1000000007

18#define pi acos(-1.0)

19#define ei exp(1)

20#define pi 3.141592653589793238462

21#define inf 0x3f3f3f3f3f

22#define mem(a) (memset(a,0,sizeof(a)))

23 typedef long

long

ll;24

const

int n=10005;25

const

int mod=1e9+7;26

27int

main()

2840}41

}42if(flag) cout<<"

no solution

"<43return0;

44 }

51nod 1080 兩個數的平方和

1080 兩個數的平方和 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數n,將n表示為2個整數i j的平方和 i j 如果有多種表示,按照i的遞增序輸出。例如 n 130,130 3 2 11 2 7 2 9 2 注 3 11同11 3算1種 inpu...

51nod1080 兩個數的平方和

給出乙個整數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...

51nod1080 兩個數的平方和

給出乙個整數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...