r-statistics-fanの日記

統計好き人間の覚書のようなもの

ピタゴラスの定理の整数解(原始ピタゴラス数)

ピタゴラスの定理の整数解(原始ピタゴラス数)

子供がピタゴラスの定理の話をしていた。 いくつか整数解の組合せを知っているようだ。

{ \displaystyle a^{2}+b^{2}=c^{2} }

aとbが1~1000までとすると、どのくらい整数解があるのか気になった。 wikipediaによると原始ピタゴラス数と言うらしい。 Rでやってみる。

## ピタゴラスの定理
library(gmp)
n <- 1000
i <- 1
ans <- matrix(0, floor(n) * 3, ncol = 3)

for (a in 1:n) {
    for (b in 1:n) {
        if (a <= b) {
            if (floor(sqrt(a * a + b * b)) == sqrt(a * a + b * b)) {
                temp <- c(a, b, sqrt(a^2 + b^2))
                if (Reduce(gcd, temp) == 1) {
                  ans[i, ] <- c(a, b, sqrt(a^2 + b^2))
                  i <- i + 1
                }
            }
        }
    }
}

ans <- ans[apply(ans, 1, sum) != 0, ]
ans
##        [,1] [,2] [,3]
##   [1,]    3    4    5
##   [2,]    5   12   13
##   [3,]    7   24   25
##   [4,]    8   15   17
##   [5,]    9   40   41
##   [6,]   11   60   61
##   [7,]   12   35   37
##   [8,]   13   84   85
##   [9,]   15  112  113
##  [10,]   16   63   65
##  [11,]   17  144  145
##  [12,]   19  180  181
##  [13,]   20   21   29
##  [14,]   20   99  101
##  [15,]   21  220  221
##  [16,]   23  264  265
##  [17,]   24  143  145
##  [18,]   25  312  313
##  [19,]   27  364  365
##  [20,]   28   45   53
##  [21,]   28  195  197
##  [22,]   29  420  421
##  [23,]   31  480  481
##  [24,]   32  255  257
##  [25,]   33   56   65
##  [26,]   33  544  545
##  [27,]   35  612  613
##  [28,]   36   77   85
##  [29,]   36  323  325
##  [30,]   37  684  685
##  [31,]   39   80   89
##  [32,]   39  760  761
##  [33,]   40  399  401
##  [34,]   41  840  841
##  [35,]   43  924  925
##  [36,]   44  117  125
##  [37,]   44  483  485
##  [38,]   48   55   73
##  [39,]   48  575  577
##  [40,]   51  140  149
##  [41,]   52  165  173
##  [42,]   52  675  677
##  [43,]   56  783  785
##  [44,]   57  176  185
##  [45,]   60   91  109
##  [46,]   60  221  229
##  [47,]   60  899  901
##  [48,]   65   72   97
##  [49,]   68  285  293
##  [50,]   69  260  269
##  [51,]   75  308  317
##  [52,]   76  357  365
##  [53,]   84  187  205
##  [54,]   84  437  445
##  [55,]   85  132  157
##  [56,]   87  416  425
##  [57,]   88  105  137
##  [58,]   92  525  533
##  [59,]   93  476  485
##  [60,]   95  168  193
##  [61,]   96  247  265
##  [62,]  100  621  629
##  [63,]  104  153  185
##  [64,]  105  208  233
##  [65,]  105  608  617
##  [66,]  108  725  733
##  [67,]  111  680  689
##  [68,]  115  252  277
##  [69,]  116  837  845
##  [70,]  119  120  169
##  [71,]  120  209  241
##  [72,]  120  391  409
##  [73,]  123  836  845
##  [74,]  124  957  965
##  [75,]  129  920  929
##  [76,]  132  475  493
##  [77,]  133  156  205
##  [78,]  135  352  377
##  [79,]  136  273  305
##  [80,]  140  171  221
##  [81,]  145  408  433
##  [82,]  152  345  377
##  [83,]  155  468  493
##  [84,]  156  667  685
##  [85,]  160  231  281
##  [86,]  161  240  289
##  [87,]  165  532  557
##  [88,]  168  425  457
##  [89,]  168  775  793
##  [90,]  175  288  337
##  [91,]  180  299  349
##  [92,]  184  513  545
##  [93,]  185  672  697
##  [94,]  189  340  389
##  [95,]  195  748  773
##  [96,]  200  609  641
##  [97,]  203  396  445
##  [98,]  204  253  325
##  [99,]  205  828  853
## [100,]  207  224  305
## [101,]  215  912  937
## [102,]  216  713  745
## [103,]  217  456  505
## [104,]  220  459  509
## [105,]  225  272  353
## [106,]  228  325  397
## [107,]  231  520  569
## [108,]  232  825  857
## [109,]  240  551  601
## [110,]  248  945  977
## [111,]  252  275  373
## [112,]  259  660  709
## [113,]  260  651  701
## [114,]  261  380  461
## [115,]  273  736  785
## [116,]  276  493  565
## [117,]  279  440  521
## [118,]  280  351  449
## [119,]  280  759  809
## [120,]  287  816  865
## [121,]  297  304  425
## [122,]  300  589  661
## [123,]  301  900  949
## [124,]  308  435  533
## [125,]  315  572  653
## [126,]  315  988 1037
## [127,]  319  360  481
## [128,]  320  999 1049
## [129,]  333  644  725
## [130,]  336  377  505
## [131,]  336  527  625
## [132,]  341  420  541
## [133,]  348  805  877
## [134,]  364  627  725
## [135,]  368  465  593
## [136,]  369  800  881
## [137,]  372  925  997
## [138,]  385  552  673
## [139,]  387  884  965
## [140,]  396  403  565
## [141,]  400  561  689
## [142,]  407  624  745
## [143,]  420  851  949
## [144,]  429  460  629
## [145,]  429  700  821
## [146,]  432  665  793
## [147,]  448  975 1073
## [148,]  451  780  901
## [149,]  455  528  697
## [150,]  464  777  905
## [151,]  468  595  757
## [152,]  473  864  985
## [153,]  481  600  769
## [154,]  495  952 1073
## [155,]  496  897 1025
## [156,]  504  703  865
## [157,]  533  756  925
## [158,]  540  629  829
## [159,]  555  572  797
## [160,]  559  840 1009
## [161,]  576  943 1105
## [162,]  580  741  941
## [163,]  585  928 1097
## [164,]  615  728  953
## [165,]  616  663  905
## [166,]  620  861 1061
## [167,]  645  812 1037
## [168,]  660  779 1021
## [169,]  660  989 1189
## [170,]  696  697  985
## [171,]  704  903 1145
## [172,]  705  992 1217
## [173,]  731  780 1069
## [174,]  744  817 1105
## [175,]  765  868 1157
## [176,]  799  960 1249
## [177,]  832  855 1193
## [178,]  884  987 1325
## [179,]  893  924 1285