Решить в вычислить таблицу значений функции z=(x^(s_1 )+x^(s_2 ))/(k_1-k_2 ), где s_1,k_1 - сумма и количество положительных элементов матрицы t(6,6), расположенных ниже главной диагонали; s_2,k_2 сумма и количество положительных элементов матрицы t(6,6), расположенных ниже главной диагонали; х изменяется от x_n до x_k с шагом h. знакопеременные массивы сформировать случайным образом.
// Внимание! Если программа не работает, обновите версию!
function IsPrime(Self:integer):boolean; extensionmethod;
// является ли число n простым
begin
if Self<4 then Result:=True
else begin
var found:=(Self mod 2=0);
var p:=3;
while (not found) and (sqr(p)<=Self) do
begin found:=(Self mod p=0); p+=2 end;
Result:=not found
end
end;
function SumDig(Self:integer):integer; extensionmethod;
// возвращает сумму цифр числа n
begin
var n:=Self;
Result:=0;
while n>0 do begin
Result+=n mod 10;
n:=n div 10
end
end;
begin
100.To(999).Where(t->t.SumDig.IsPrime).Println
end.
Результат
100 101 102 104 106 110 111 113 115 119 120 122 124 128 131 133 137 139 140 142 146 148 151 155 157 160 164 166 173 175 179 182 184 188 191 193 197 199 200 201 203 205 209 210 212 214 218 221 223 227 229 230 232 236 238 241 245 247 250 254 256 263 265 269 272 274 278 281 283 287 289 290 292 296 298 300 302 304 308 311 313 317 319 320 322 326 328 331 335 337 340 344 346 353 355 359 362 364 368 371 373 377 379 380 382 386 388 391 395 397 401 403 407 409 410 412 416 418 421 425 427 430 434 436 443 445 449 452 454 458 461 463 467 469 470 472 476 478 481 485 487 490 494 496 500 502 506 508 511 515 517 520 524 526 533 535 539 542 544 548 551 553 557 559 560 562 566 568 571 575 577 580 584 586 593 595 599 601 605 607 610 614 616 623 625 629 632 634 638 641 643 647 649 650 652 656 658 661 665 667 670 674 676 683 685 689 692 694 698 700 704 706 713 715 719 722 724 728 731 733 737 739 740 742 746 748 751 755 757 760 764 766 773 775 779 782 784 788 791 793 797 803 805 809 812 814 818 821 823 827 829 830 832 836 838 841 845 847 850 854 856 863 865 869 872 874 878 881 883 887 890 892 896 902 904 908 911 913 917 919 920 922 926 928 931 935 937 940 944 946 953 955 959 962 964 968 971 973 977 980 982 986 991 995
Идём по записи
1) 5 — кладём в стек 5
2) 13 — кладём в стек 13
3) 7 — кладём в стек 7
4) - — вытаскиваем из стека два последних шара (13 и 7) и кладём обратно их разность 13 - 7 = 6
5) * — вытаскиваем из стека два последних шара (5 и 6) и кладём обратно их произведение (5 * 6 = 30). 30 и будет ответом.
Эта запись равносильна такой: 5 * (13 - 7)