Homeに戻る  一覧に戻る 

Positive Integer Solution of x^3+y^3+z^3=n (n \in [1..5000])


[2022.01.07]x^3+y^3+z^3=n (n \in [1..5000])の正整数解



■与えられた正整数n(1<=n<=5000)について、不定方程式
     Cn: x3+y3+z3=n
の整数解(x,y,z)を求める。

整数解(x,y,z)がprimitiveであるとは、gcd(x,y,z)=1を満たすときをいう。
整数解(x,y,z)がnon-primitiveであるとは、gcd(x,y,z) > 1であるときをいう。

ここでは基本的に、0 <= x <= y <= zであるprimitiveな解を求める。

1 <= n <= 5000に対して、不定方程式Cnの0 <= x <= y <= zであるprimitiveな正整数解(x,y,z)を求めると、以下のようになる。


Cn: x3+y3+z3=n
where
0 <= x <= y <= z,
1 < n <= 700,
gcd(x,y,z)=1
n x y z
1 0 0 1
2 0 1 1
3 1 1 1
9 0 1 2
10 1 1 2
17 1 2 2
28 0 1 3
29 1 1 3
35 0 2 3
36 1 2 3
43 2 2 3
55 1 3 3
62 2 3 3
65 0 1 4
66 1 1 4
73 1 2 4
91 0 3 4
92 1 3 4
99 2 3 4
118 3 3 4
126 0 1 5
127 1 1 5
129 1 4 4
133 0 2 5
134 1 2 5
141 2 2 5
152 0 3 5
153 1 3 5
155 3 4 4
160 2 3 5
179 3 3 5
189 0 4 5
190 1 4 5
197 2 4 5
216 3 4 5
217 0 1 6
218 1 1 6
225 1 2 6
244 1 3 6
251 1 5 5
- 2 3 6
253 4 4 5
258 2 5 5
277 3 5 5
281 1 4 6
307 3 4 6
314 4 5 5
341 0 5 6
342 1 5 6
344 0 1 7
345 1 1 7
349 2 5 6
351 0 2 7
352 1 2 7
359 2 2 7
368 3 5 6
370 0 3 7
371 1 3 7
378 2 3 7
397 3 3 7
405 4 5 6
407 0 4 7
408 1 4 7
415 2 4 7
433 1 6 6
434 3 4 7
466 5 5 6
468 0 5 7
469 1 5 7
471 4 4 7
476 2 5 7
495 3 5 7
513 0 1 8
514 1 1 8
521 1 2 8
532 4 5 7
539 0 3 8
540 1 3 8
547 2 3 8
557 5 6 6
559 0 6 7
560 1 6 7
566 3 3 8
567 2 6 7
577 1 4 8
586 3 6 7
593 5 5 7
603 3 4 8
623 4 6 7
637 0 5 8
638 1 5 8
645 2 5 8
664 3 5 8
684 5 6 7
687 1 7 7
694 2 7 7
Cn: x3+y3+z3=n
where
0 <= x <= y <= z,
701 < n <= 1500,
gcd(x,y,z)=1
n x y z
701 4 5 8
713 3 7 7
729 1 6 8
730 0 1 9
731 1 1 9
737 0 2 9
738 1 2 9
745 2 2 9
750 4 7 7
755 3 6 8
757 1 3 9
762 5 5 8
764 2 3 9
775 6 6 7
793 0 4 9
794 1 4 9
801 2 4 9
811 5 7 7
820 3 4 9
853 5 6 8
854 0 5 9
855 0 7 8
- 1 5 9
856 1 7 8
857 4 4 9
862 2 5 9
863 2 7 8
881 3 5 9
882 3 7 8
902 6 7 7
918 4 5 9
919 4 7 8
946 1 6 9
953 2 6 9
979 5 5 9
980 5 7 8
1001 0 1 10
1002 1 1 10
1009 1 2 10
- 4 6 9
1025 1 8 8
1027 0 3 10
1028 1 3 10
1035 2 3 10
1051 3 8 8
1054 3 3 10
1065 1 4 10
1070 5 6 9
1071 6 7 8
1072 0 7 9
1073 1 7 9
1080 2 7 9
1091 3 4 10
1099 3 7 9
1126 1 5 10
1133 2 5 10
1136 4 7 9
1149 5 8 8
1152 3 5 10
1189 4 5 10
1197 5 7 9
1198 7 7 8
1217 1 6 10
1241 0 8 9
1242 1 8 9
1243 3 6 10
1249 2 8 9
1268 3 8 9
1288 6 7 9
1305 4 8 9
1332 0 1 11
1333 1 1 11
1339 0 2 11
1340 1 2 11
1341 5 6 10
1343 0 7 10
1344 1 7 10
1347 2 2 11
1351 2 7 10
1358 0 3 11
1359 1 3 11
1366 2 3 11
- 5 8 9
1367 7 8 8
1370 3 7 10
1385 3 3 11
1395 0 4 11
1396 1 4 11
1403 2 4 11
1407 4 7 10
1415 7 7 9
1422 3 4 11
1456 0 5 11
1457 1 5 11
- 6 8 9
1459 1 9 9
- 4 4 11
1464 2 5 11
1466 2 9 9
1468 5 7 10
1483 3 5 11
Cn: x3+y3+z3=n
where
0 <= x <= y <= z,
1501 < n <= 2400,
gcd(x,y,z)=1
n x y z
1513 1 8 10
1520 4 5 11
1522 4 9 9
1539 3 8 10
1547 0 6 11
1548 1 6 11
1555 2 6 11
1559 6 7 10
1574 3 6 11
1581 5 5 11
1583 5 9 9
1584 7 8 9
1611 4 6 11
1637 5 8 10
1672 5 6 11
1674 0 7 11
1675 1 7 11
1682 2 7 11
1686 7 7 10
1701 3 7 11
1729 0 1 12
- 0 9 10
1730 1 1 12
- 1 9 10
1737 1 2 12
- 2 9 10
1738 4 7 11
1753 8 8 9
1756 1 3 12
- 3 9 10
1763 2 3 12
- 6 6 11
1793 1 4 12
- 4 9 10
1799 5 7 11
1801 7 9 9
1819 3 4 12
1843 0 8 11
1844 1 8 11
1851 2 8 11
1853 0 5 12
1854 1 5 12
- 5 9 10
1855 7 8 10
1861 2 5 12
1870 3 8 11
1880 3 5 12
1890 6 7 11
1907 4 8 11
1917 4 5 12
1945 1 6 12
- 6 9 10
1968 5 8 11
1970 8 9 9
1978 5 5 12
2001 1 10 10
2017 7 7 11
2027 3 10 10
2059 6 8 11
2060 0 9 11
2061 1 9 11
2068 2 9 11
2069 5 6 12
2071 0 7 12
2072 1 7 12
- 7 9 10
2079 2 7 12
2087 3 9 11
2098 3 7 12
2124 4 9 11
2135 4 7 12
2185 5 9 11
2186 7 8 11
2196 5 7 12
2198 0 1 13
2199 1 1 13
2205 0 2 13
2206 1 2 13
2213 2 2 13
2224 0 3 13
2225 1 3 13
2232 2 3 13
2241 1 8 12
- 8 9 10
2251 3 3 13
2261 0 4 13
2262 1 4 13
2267 3 8 12
2269 2 4 13
2276 6 9 11
2287 6 7 12
2288 3 4 13
2322 0 5 13
2323 1 5 13
2325 4 4 13
2330 2 5 13
2331 0 10 11
2332 1 10 11
2339 2 10 11
2343 7 10 10
2349 3 5 13
2355 8 8 11
2358 3 10 11
2365 5 8 12
2386 4 5 13
2395 4 10 11
Cn: x3+y3+z3=n
where
0 <= x <= y <= z,
2401 < n <= 3300,
gcd(x,y,z)=1
n x y z
2403 7 9 11
2413 0 6 13
2414 1 6 13
- 7 7 12
2421 2 6 13
2440 3 6 13
2447 5 5 13
2456 5 10 11
2458 1 9 12
- 9 9 10
2465 2 9 12
2477 4 6 13
2521 4 9 12
2538 5 6 13
2540 0 7 13
2541 1 7 13
2547 6 10 11
2548 2 7 13
2567 3 7 13
2572 8 9 11
2582 5 9 12
2583 7 8 12
2604 4 7 13
2629 6 6 13
2663 1 11 11
2665 5 7 13
2670 2 11 11
2674 7 10 11
2689 3 11 11
2709 0 8 13
2710 1 8 13
2717 2 8 13
2726 4 11 11
2729 1 10 12
- 9 10 10
2736 3 8 13
2745 0 1 14
2746 1 1 14
2753 1 2 14
2755 3 10 12
2756 6 7 13
2771 0 3 14
2772 1 3 14
2773 4 8 13
2779 2 3 14
2787 5 11 11
2789 9 9 11
2798 3 3 14
2800 7 9 12
2809 1 4 14
2834 5 8 13
2835 3 4 14
2843 8 10 11
2853 5 10 12
2869 0 5 14
2870 1 5 14
2877 2 5 14
2878 6 11 11
2883 7 7 13
2896 3 5 14
2925 6 8 13
2926 0 9 13
2927 1 9 13
2933 4 5 14
2934 2 9 13
2953 3 9 13
2961 1 6 14
2969 8 9 12
2987 3 6 14
2990 4 9 13
2994 5 5 14
3005 7 11 11
3051 5 9 13
3052 7 8 13
3059 0 11 12
3060 1 11 12
- 9 10 11
3067 2 11 12
3071 7 10 12
3085 5 6 14
3086 3 11 12
3088 1 7 14
3095 2 7 14
3114 3 7 14
3123 4 11 12
3142 6 9 13
3151 4 7 14
3174 8 11 11
3184 5 11 12
3197 0 10 13
3198 1 10 13
3205 2 10 13
3212 5 7 14
3221 8 8 13
3224 3 10 13
3257 1 8 14
3261 4 10 13
3269 7 9 13
3275 6 11 12
3283 3 8 14
Cn: x3+y3+z3=n
where
0 <= x <= y <= z,
3301 < n <= 4200,
gcd(x,y,z)=1
n x y z
3303 6 7 14
3322 5 10 13
3331 10 10 11
3376 0 1 15
3377 1 1 15
3381 5 8 14
3383 0 2 15
3384 1 2 15
3391 2 2 15
- 9 11 11
3402 7 11 12
3403 1 3 15
3410 2 3 15
3413 6 10 13
3438 8 9 13
3439 0 4 15
3440 1 4 15
3447 2 4 15
3457 1 12 12
- 9 10 12
3466 3 4 15
3473 0 9 14
3474 1 9 14
3481 2 9 14
3500 3 9 14
3501 1 5 15
3503 4 4 15
3508 2 5 15
3527 3 5 15
3528 0 11 13
3529 1 11 13
3536 2 11 13
3537 4 9 14
3540 7 10 13
3555 3 11 13
3564 4 5 15
3571 8 11 12
3581 5 12 12
3592 1 6 15
- 4 11 13
3598 5 9 14
3599 2 6 15
- 7 8 14
3653 5 11 13
3655 4 6 15
- 9 9 13
3662 10 11 11
3689 6 9 14
3709 8 10 13
3716 5 6 15
3718 0 7 15
3719 1 7 15
3726 2 7 15
3744 6 11 13
3745 1 10 14
- 3 7 15
3771 3 10 14
3782 4 7 15
3788 9 11 12
3799 7 12 12
3816 7 9 14
3843 5 7 15
3869 5 10 14
3871 7 11 13
3887 0 8 15
3888 1 8 15
3895 2 8 15
3914 3 8 15
3925 0 12 13
3926 1 12 13
- 9 10 13
3933 2 12 13
3934 6 7 15
3951 4 8 15
3952 3 12 13
3985 8 9 14
3989 4 12 13
4012 5 8 15
4040 8 11 13
4050 5 12 13
4059 10 11 12
4061 7 7 15
4075 0 11 14
4076 1 11 14
4083 2 11 14
4087 7 10 14
4097 0 1 16
4098 1 1 16
4102 3 11 14
4103 6 8 15
4105 1 2 16
- 1 9 15
4112 2 9 15
4123 0 3 16
4124 1 3 16
4131 2 3 16
4139 4 11 14
4141 6 12 13
4150 3 3 16
4161 1 4 16
4168 4 9 15
4187 3 4 16
4197 10 10 13
4200 5 11 14
Cn: x3+y3+z3=n
where
0 <= x <= y <= z,
4201 < n <= 5000,
gcd(x,y,z)=1
n x y z
4202 9 9 14
4221 0 5 16
4222 1 5 16
4229 2 5 16
- 5 9 15
4230 7 8 15
4248 3 5 16
4257 9 11 13
4268 7 12 13
4285 4 5 16
4291 6 11 14
4313 1 6 16
4339 3 6 16
4346 5 5 16
4376 1 10 15
4383 2 10 15
4390 11 11 12
4395 1 13 13
4399 8 8 15
4402 2 13 13
- 3 10 15
4418 7 11 14
4421 3 13 13
4437 5 6 16
- 8 12 13
4439 0 7 16
- 4 10 15
4440 1 7 16
4447 2 7 16
- 7 9 15
4458 4 13 13
4466 3 7 16
4473 1 12 14
- 9 10 14
4499 3 12 14
4503 4 7 16
4519 5 13 13
4528 10 11 13
4564 5 7 16
4587 8 11 14
4591 6 10 15
4597 5 12 14
4609 1 8 16
4610 6 13 13
4616 8 9 15
4635 3 8 16
4654 9 12 13
4655 6 7 16
4706 0 11 15
4707 1 11 15
4714 2 11 15
4718 7 10 15
4733 3 11 15
- 5 8 16
4737 7 13 13
4770 4 11 15
4782 7 7 16
4787 11 12 12
4804 9 11 14
4815 7 12 14
4825 0 9 16
4826 1 9 16
4831 5 11 15
4833 2 9 16
4852 3 9 16
4859 11 11 13
4887 8 10 15
4889 4 9 16
4906 8 13 13
4914 0 1 17
4915 1 1 17
4921 0 2 17
4922 1 2 17
- 6 11 15
4925 10 12 13
4929 2 2 17
4940 0 3 17
4941 0 13 14
- 1 3 17
4942 1 13 14
4948 2 3 17
4949 2 13 14
4950 5 9 16
4951 7 8 16
4967 3 3 17
4968 3 13 14
4977 0 4 17
4978 1 4 17
4985 2 4 17

■作成したプログラムについての工夫を述べる。

■a30の実行例
n=1730, 143604279, 143604280, 18446744073709250272のときのprimiiveな解を求めると、以下のようになる。
-bash-3.1$ time ./a30 -n 1730
1:1^3+1^3+12^3=1730
2:1^3+9^3+10^3=1730
2 solutions.

real    0m0.010s
user    0m0.000s
sys     0m0.010s
-bash-3.1$ time ./a30 -n 143604279
1:0^3+359^3+460^3=143604279
1 solutions.

real    0m0.017s
user    0m0.009s
sys     0m0.009s
-bash-3.1$ time ./a30 -n 143604280
1:1^3+111^3+522^3=143604280
2:1^3+359^3+460^3=143604280
3:1^3+408^3+423^3=143604280
4:323^3+328^3+421^3=143604280
4 solutions.

real    0m0.012s
user    0m0.012s
sys     0m0.000s
-bash-3.1$ time ./a30 -n 18446744073709250272
1:467^3+27094^3+2642245^3=18446744073709250272
2:1600255^3+1751201^3+2078416^3=18446744073709250272
2 solutions.

real    902m26.119s
user    902m24.138s
sys     0m0.030s
option '-d'を付けると、non-primitiveな解を求めることができる。()内はgcd(x,y,z)である。例えば、n=143604279のときのnon-primitiveな解を求めると、以下のようになる。
-bash-3.1$ time ./aa30 143604279 -d
1:0^3+111^3+522^3=143604279 (3)
2:0^3+359^3+460^3=143604279
3:0^3+408^3+423^3=143604279 (3)
1 primitive solutions.
3 solutions.

real    0m0.010s
user    0m0.000s
sys     0m0.010s

■aa31の実行例
n=2022となるprimitiveな解(ただし、0 <= |x| <= |y| <= |z| <= 1000000, y*z<0, 0 < |z|-|y| < 100000)は、以下のように2個存在する。
-bash-3.1$ time ./aa31 2022 10 1000000 100000
using (mod 2^64).
1:-13^3-37^3+38^3=2022
2:-355^3-415^3+488^3=2022
2 solutions.

real    26m38.557s
user    26m38.528s
sys     0m0.000s

■aa32の実行例
n=2022となるprimitiveな解(ただし、0 <= |x| <= |y| <= |z| <= 10000000, x*y >= 0)は、以下のように7個存在する。
-bash-3.1$ time ./aa32 2022 1 10000000
using (mod 2^64).
1:-13^3-37^3+38^3=2022
2:-331^3-472^3+521^3=2022
3:-355^3-415^3+488^3=2022
4:-5629^3-243829^3+243830^3=2022
5:-26149^3-41773^3+44942^3=2022
6:-75142^3-1421359^3+1421429^3=2022
7:-134827^3-910231^3+911216^3=2022


■参考文献[2]によると、
    -3232871681403^3-50427467704543^3+50431896357881^3=7
    -2218888517^3 - 283059965^3 + 2220422932^3=30
    -3977505554546^3 - 636600549515^3 + 3982933876681^3=30
    -8778405442862239^3 - 2736111468807040^3 + 8866128975287528^3=33
のように、|z|が10〜16桁の場合の解も求められている。
これらの解のz,z-yの値を使って範囲を狭くして、aa31,aa32が解を求めることができることを確認した。
-bash-3.1$ time ./aa31 7 50431896357881 50431896357881 4428653338 1000
using (mod 2^64).
1:-3232871681403^3-50427467704543^3+50431896357881^3=7
1 solutions.

real    2m10.656s
user    2m10.656s
sys     0m0.000s
-bash-3.1$ time ./aa31 30 2220422932 2220422932 1534415
using (mod 2^64).
1:-283059965^3-2218888517^3+2220422932^3=30
1 solutions.

real    0m0.028s
user    0m0.019s
sys     0m0.010s
-bash-3.1$ time ./aa32 30 2220422932 2220422932
using (mod 2^64).
1:-283059965^3-2218888517^3+2220422932^3=30
1 solutions.

real    4m31.014s
user    4m31.013s
sys     0m0.000s
-bash-3.1$ time ./aa31 30 3982933876681 3982933876681 5428322135
using (mod 2^64).
1:-636600549515^3-3977505554546^3+3982933876681^3=30
1 solutions.

real    1m45.621s
user    1m45.621s
sys     0m0.000s


[参考文献]


Last Update: 2022.03.13
H.Nakao

Homeに戻る[Homeに戻る] 一覧に戻る[一覧に戻る]