Героновы треугольники

Post Reply
User avatar
Mr. Kibernetik
Site Admin
Posts: 4607
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPad, iPhone, MacBook
Location: Russia
Flag: Russia

Героновы треугольники

Post by Mr. Kibernetik » Thu Sep 07, 2017 11:37 am

Эта программа печатает таблицу Героновых треугольников со сторонами до 200, отсортированную по площади, периметру и сторонам.

Code: Select all

h,t = getem(200)
#.sort(h,4,5,1,2,3)
#.output("There are ",t," Heronian triangles")
#.output("   a     b     c   area  perimeter")
#.output("----- ----- ----- ------ ---------")
> i, 1..t
  print(h,i)
<
print(h,i)=
  #.output(#.str(h[1,i],">4>"),"  ",#.str(h[2,i],">4>"),"  ",#.str(h[3,i],">4>"),"  ",#.str(h[4,i],">5>"),"  ",#.str(h[5,i],">8>"))
.
getem(n)=
  > a, 1..n
    > b, #.upper((a+1)/2)..a
      > c, a-b+1..b
        x = ((a+b+c)*(a+b-c)*(a-b+c)*(b-a+c))^0.5
        >> x%1 | #.gcd(a,b,c)>1
        t += 1
        h[1,t],h[2,t],h[3,t] = #.sort(a,b,c)
        h[4,t],h[5,t] = heron(a,b,c)
      <
    <
  <
  <= h,t
.
heron(a,b,c)=
  s = (a+b+c)/2
  <= (s*(s-a)*(s-b)*(s-c))^0.5, s*2
.
Результат работы:

Code: Select all

There are 517 Heronian triangles
   a     b     c   area  perimeter
----- ----- ----- ------ ---------
   3     4     5      6        12
   5     5     6     12        16
   5     5     8     12        18
   4    13    15     24        32
   5    12    13     30        30
   9    10    17     36        36
   3    25    26     36        54
   7    15    20     42        42
  10    13    13     60        36
   8    15    17     60        40
  13    13    24     60        50
   6    25    29     60        60
  11    13    20     66        44
   5    29    30     72        64
  13    14    15     84        42
  10    17    21     84        48
   7    24    25     84        56
   8    29    35     84        72
  12    17    25     90        54
   4    51    53     90       108
  19    20    37    114        76
  16    17    17    120        50
  17    17    30    120        64
  16    25    39    120        80
  13    20    21    126        54
  15    28    41    126        84
   5    51    52    126       108
  11    25    30    132        66
  15    26    37    156        78
  13    40    51    156       104
  14    25    25    168        64
  10    35    39    168        84
  25    25    48    168        98
  13    30    37    180        80
   9    40    41    180        90
  12    55    65    198       132
  17    25    26    204        68
  17    25    28    210        70
  20    21    29    210        70
  12    35    37    210        84
  17    28    39    210        84
   7    65    68    210       140
   3   148   149    210       300
   9    73    80    216       162
  15    41    52    234       108
  13    37    40    240        90
  15    34    35    252        84
  13    40    45    252        98
   9    65    70    252       144
  15    37    44    264        96
  33    34    65    264       132
  27    29    52    270       108
  17    65    80    288       162
  25    51    74    300       150
   5   122   123    300       250
  20    37    51    306       108
  17    39    44    330       100
  25    33    52    330       110
  11    60    61    330       132
  11   100   109    330       220
  17    40    41    336        98
  24    35    53    336       112
  15    52    61    336       128
   4   193   195    336       392
  25    29    36    360        90
  18    41    41    360       100
  41    41    80    360       162
  13    68    75    390       156
  34    55    87    396       176
  11    90    97    396       198
  13   109   120    396       242
  20    51    65    408       136
  24    37    37    420        98
  25    34    39    420        98
  29    29    40    420        98
  29    29    42    420       100
  21    41    50    420       112
  26    35    51    420       112
  25    39    56    420       120
  14    61    65    420       140
  37    37    70    420       144
  26    51    73    420       150
  41    50    89    420       180
  26    73    97    420       196
  21    85   104    420       210
  15   106   119    420       240
   7   169   174    420       350
  25    38    51    456       114
  19    60    73    456       152
  39    58    95    456       192
  17    55    60    462       132
  35    44    75    462       154
  25    39    40    468       104
   8   123   125    480       256
  29    35    48    504       112
  16    63    65    504       144
  28    85   111    504       224
  17    87   100    510       204
  51    52   101    510       204
  29    60    85    522       174
  20    53    55    528       128
  25    97   120    528       242
  29    52    75    546       156
  13    84    85    546       182
  28    65    89    546       182
  39    76   113    570       228
  25    51    52    624       128
  53    65   116    624       234
  28    45    53    630       126
  25    52    63    630       140
  21    61    68    630       150
  36    91   125    630       252
  12   137   145    630       294
  26    51    55    660       132
  33    41    58    660       132
  22    61    61    660       144
  33    58    85    660       176
  61    61   120    660       242
  19   153   170    684       342
  29    52    69    690       150
  25    92   113    690       230
  51    53   100    714       204
  17   105   116    714       238
  37    39    52    720       128
  32    53    75    720       160
  25   136   159    720       320
  34    65    93    744       192
  25    63    74    756       162
  17    89    90    756       196
  39    41    50    780       130
  29    78   101    780       208
  17   104   113    780       234
  13   122   125    780       260
  45   100   143    792       288
  41    60    95    798       196
  35    52    73    840       160
  21    82    89    840       192
  26    75    91    840       192
  51    52    97    840       200
  21    89   100    840       210
  25    84   101    840       210
  35    73   102    840       210
  28    87   109    840       224
  15   112   113    840       240
  51    97   146    840       294
  13   150   157    840       320
  73    74   145    876       292
  17   113   120    900       250
  33    56    65    924       154
  35    53    66    924       154
  40    51    77    924       168
  25    74    77    924       176
  39    55    82    924       176
  22    85    91    924       198
  58    65   119    924       242
  15   136   143    924       294
  26   123   145    924       294
  14   157   165    924       336
  31    68    87    930       186
  31   156   185    930       372
  29    65    68    936       162
  29    75    92    966       196
  23   140   159    966       322
  41    50    73    984       164
  20    99   101    990       220
  25   113   132    990       270
  29   123   148    990       300
  55   111   164    990       330
  32    65    65   1008       162
  30   101   125   1008       256
  65    65   126   1008       256
  41    51    58   1020       150
  34    61    75   1020       170
  20   111   119   1050       250
  36    61    65   1080       162
  35    65    82   1092       182
  26    85    85   1092       196
  85    85   168   1092       338
  40   157   195   1092       392
  39   113   148   1110       300
  39    62    85   1116       186
  31    97   120   1116       248
  38    65    87   1140       190
  25   101   114   1140       240
  51    52    53   1170       156
  51    98   145   1176       294
  49   148   195   1176       392
  40    85   117   1188       242
  29   101   120   1200       250
  53    78   125   1200       256
  60    89   145   1218       294
  17   144   145   1224       306
  53    53    56   1260       162
  53    53    90   1260       196
  37    72    91   1260       200
  35    78    97   1260       210
  14   181   183   1260       378
  61   136   195   1260       392
  43    61    68   1290       172
  48    55    73   1320       176
  41    66    85   1320       192
  25   106   111   1320       242
  41    85   116   1320       242
  40   111   145   1332       296
  46    75   109   1380       230
  51    74   115   1380       240
  23   123   130   1380       276
  44    65    87   1386       196
  36    77    85   1386       198
  35   156   187   1386       378
  99   100   197   1386       396
  52   101   147   1470       300
  83    85   164   1494       332
  52    75   115   1518       242
  52    61    87   1560       200
  39    80    89   1560       208
  25   149   164   1560       338
  44    75    97   1584       216
  40    89   113   1584       242
  29   110   117   1584       256
  53   109   156   1590       318
  57    65   106   1596       228
  26   133   145   1596       304
  25   136   145   1632       306
  35   100   117   1638       252
  20   169   175   1638       364
  65   119   180   1638       364
  20   175   183   1638       378
  50    69    73   1656       192
  39    85    92   1656       216
  56    61    75   1680       192
  41    84    85   1680       210
  37    91    96   1680       224
  30   113   113   1680       256
  32   119   137   1680       288
  57    65    68   1710       190
  19   180   181   1710       380
  39   110   137   1716       286
  24   143   145   1716       312
  37   136   165   1716       338
  41    87   104   1740       232
  29   125   136   1740       290
  29   150   169   1740       348
  59    68   109   1770       236
  52    73    75   1800       200
  45    89   116   1800       250
  53    80   117   1800       250
  37   130   157   1800       324
  72    85   149   1836       306
  26   145   153   1836       324
  65    65    66   1848       196
  37   100   105   1848       242
  65    65   112   1848       242
  55    84   125   1848       264
  80    91   165   1848       336
  20   185   187   1848       392
  45    85   104   1872       234
  25   153   160   1872       338
  45    91   116   1890       252
  37   108   125   1890       270
  30   145   161   1932       336
  23   170   175   1932       368
  53   100   141   1974       294
  53    75    88   1980       216
  65    66   109   1980       240
  40   101   101   1980       242
  30   143   157   1980       330
 101   101   198   1980       400
  48    85    91   2016       224
  65    72   119   2016       256
  73    85   148   2040       306
  65   124   183   2046       372
  61    69   100   2070       230
  41   104   105   2100       250
  25   182   193   2100       400
  53   150   197   2100       400
  65    68   105   2142       238
  34   137   153   2160       324
  60    73    91   2184       224
  65    68   101   2184       234
  61    74    87   2220       222
  37   123   136   2220       296
  53    85   104   2244       242
  55   136   183   2244       374
  51   145   188   2256       384
  57    82    89   2280       228
  68    75    77   2310       220
  51    91   100   2310       242
  37   125   132   2310       294
  73    84   143   2310       300
  44   119   145   2310       308
  55   116   159   2310       330
  65    72    97   2340       234
  58    85   117   2340       260
  34   145   159   2340       338
  41   130   153   2376       324
  65    76    87   2394       228
  52    95   119   2394       266
  45   133   164   2394       342
  61    80   109   2400       250
  29   182   195   2436       406
  35   174   197   2436       406
  87   119   200   2436       406
  34   145   145   2448       324
  41   169   200   2460       410
  41   137   160   2496       338
  51   100   119   2520       270
  70    97   153   2520       320
  68   117   175   2520       360
  29   174   175   2520       378
  39   157   182   2520       378
  84   109   185   2520       378
  44   117   125   2574       286
  65    89   132   2574       286
  29   180   187   2574       396
  39   155   178   2604       372
  39   145   164   2610       348
  65    87    88   2640       240
  73    73    96   2640       242
  73    73   110   2640       256
  39   136   145   2640       320
  37   143   150   2640       330
  60   137   187   2640       384
  61    91   100   2730       252
  60    91   109   2730       260
  52   111   137   2730       300
  84    97   169   2730       350
  52   137   175   2730       364
  28   195   197   2730       420
  72    85    85   2772       242
  55   104   105   2772       264
  85    85   154   2772       324
  35   165   178   2772       378
  45   130   149   2808       324
  67    85   116   2814       268
  68    87    95   2850       250
  73    80   119   2856       272
  51   113   130   2856       294
  49   122   123   2940       294
  36   173   187   2970       396
  61   135   182   3024       378
  61   102   109   3060       272
  53   117   136   3060       306
  75    86    97   3096       258
  43   145   156   3096       344
  78    89    89   3120       256
  89    89   160   3120       338
  52   123   125   3150       300
  39   164   175   3150       378
  70    95   101   3192       266
  76    85   105   3192       266
  68    95   125   3192       288
  89    97   170   3204       356
  73   134   195   3216       402
  61   120   157   3276       338
  65   126   173   3276       364
  85   111   182   3276       378
  40   169   183   3276       392
  55   136   169   3300       360
  64   111   145   3360       320
  87   112   185   3360       384
  45   164   187   3366       396
  78    95    97   3420       270
  57   122   125   3420       304
  85   104   171   3420       360
  38   181   181   3420       400
  65   110   111   3432       286
  48   145   145   3432       338
  65   106   123   3444       294
  65   109   116   3480       290
  73   102   145   3480       320
  51   140   149   3570       340
  65   119   156   3570       340
  68   109   123   3690       300
  60   143   181   3696       384
  62   123   125   3720       310
  54   149   175   3780       378
  53   145   150   3828       348
  78   101   115   3864       294
  65   119   138   3864       322
  69   113   140   3864       322
  46   175   193   3864       414
  85    93   116   3906       294
  89    99   100   3960       288
  61   133   156   3990       350
  57   148   175   3990       380
  75   109   136   4080       320
  69   130   169   4140       368
  85    99   140   4158       324
  68   135   175   4158       378
  91   100   159   4200       350
  59   145   150   4248       354
  85   104   117   4284       306
  90    97   119   4284       306
  87   100   143   4290       330
  52   165   173   4290       390
  68   143   185   4290       396
  73   120   145   4368       338
  85   105   148   4368       338
  61   160   195   4368       416
  89   111   170   4440       370
  65   159   200   4452       424
  58   155   159   4464       372
  82   111   145   4524       338
  81   113   130   4536       324
  77   123   130   4620       330
  88   105   137   4620       330
  91   102   143   4620       336
  87   109   154   4620       350
  75   136   181   4620       392
  61   155   156   4650       372
  97    97   130   4680       324
  97    97   144   4680       338
  52   181   183   4680       416
  73   148   195   4680       416
  75   133   170   4788       378
  91   115   116   4830       322
  92   111   119   4830       322
  78   125   145   4872       348
  89   116   123   4920       328
  61   164   185   4920       410
  73   143   180   4950       396
  57   176   185   5016       418
  91   111   148   5040       350
  84   125   169   5040       378
  56   181   195   5040       432
  85   122   159   5124       366
 100   109   171   5130       380
  88   125   125   5148       338
 100   115   123   5382       338
 106   113   119   5460       338
 109   109   120   5460       338
  91   123   136   5460       350
  75   146   169   5460       390
  91   125   174   5460       390
 104   111   175   5460       390
 109   109   182   5460       400
 106   119   195   5460       420
  56   197   197   5460       450
  92   123   169   5520       384
  99   113   140   5544       352
  77   145   156   5544       378
 101   112   165   5544       378
  75   148   169   5544       392
  61   185   186   5580       432
  85   132   157   5610       374
  85   140   183   5712       408
  97   120   161   5796       378
 104   115   173   5796       392
  69   170   193   5796       432
  97   122   169   5820       388
  99   125   136   5940       360
 105   116   143   6006       364
  73   170   195   6132       438
  85   148   159   6216       392
 102   125   173   6300       400
  91   146   195   6300       432
 111   124   137   6510       372
  91   145   180   6552       416
 112   125   195   6552       432
  87   160   169   6864       416
  99   148   149   6930       396
 100   143   153   6930       396
  89   156   175   6930       420
 111   136   145   7140       392
 102   149   149   7140       400
 119   120   169   7140       408
  91   159   170   7140       420
  97   153   200   7200       450
 101   148   195   7326       444
 101   152   165   7524       418
 110   137   171   7524       418
  95   159   178   7524       432
 119   137   144   7560       400
  89   170   189   7560       448
 104   153   193   7920       450
 104   153   185   7956       442
  95   168   193   7980       456
 123   133   200   7980       456
 113   145   194   8136       452
 119   145   156   8190       420
 122   141   169   8460       432
  94   181   195   8460       470
 105   170   173   8568       448
 104   173   173   8580       450
 123   146   169   8760       438
 140   143   157   9240       440
 125   154   169   9240       448
 137   137   176   9240       450
 111   175   176   9240       462
 119   156   187   9240       462
 101   188   195   9306       484
 125   161   174   9660       460
 136   145   183   9744       464
 130   153   185   9828       468
 137   145   188   9870       470
 117   170   197   9900       484
 115   174   197   9936       486
 114   185   185  10032       484
 117   173   200  10080       490
 121   170   193  10164       484
 145   147   194  10584       486
 148   153   175  10710       476
 149   156   175  10920       480
 145   156   185  10962       486
 136   169   183  10980       488
 157   157   170  11220       484
 123   187   200  11220       510
 140   173   187  11550       500
 146   169   185  11700       500
 144   175   193  12096       512
 157   165   184  12144       506
 148   175   195  12432       518
 145   180   197  12528       522
 165   182   193  13860       540
 190   193   193  15960       576
 193   194   195  16296       582

Post Reply