// MulToN.cpp : アプリケーションのエントリ ポイントを定義します。 // #include <iostream> #include <vector> #include <tuple> #include <cstdint> #include <cmath> #include <algorithm> typedef std::tuple < std::uint64_t, std::uint64_t> Data; typedef std::vector<Data> DType; DType MakeHoge(std::uint64_t N) { std::uint64_t Root = std::sqrt(N); DType D; std::uint64_t T = N + 1; for (std::uint64_t i = 1; i <= Root; i++) { if (i*(N / i) == N)D.push_back({ i,N / i }); if (i*(T + i) == N)D.push_back({ i,T * i }); if (i*i == N)D.push_back({ i,i }); if ((T-i)*(T-i) == N)D.push_back({T-i,T-i }); } std::sort(D.begin(), D.end(), [](auto& a, auto& b) {return std::get<0>(a) + std::get<1>(a) < std::get<0>(b) + std::get<1>(b); }); return D; } bool Show(const std::uint64_t N, const Data& D) { std::cout << N << ':' << std::get<0>(D) << '*' << std::get<1>(D) << std::endl; return true; } int main() { DType D; for (std::uint64_t i = 0; i <= 1000; i++) { D = MakeHoge(i); if (D.size() == 0)continue; Show(i, D[0]); } return 0; }
Standard input is empty
1:1*1 2:1*2 3:1*3 4:2*2 5:1*5 6:2*3 7:1*7 8:2*4 9:3*3 10:2*5 11:1*11 12:3*4 13:1*13 14:2*7 15:3*5 16:4*4 17:1*17 18:3*6 19:1*19 20:4*5 21:3*7 22:2*11 23:1*23 24:4*6 25:5*5 26:2*13 27:3*9 28:4*7 29:1*29 30:5*6 31:1*31 32:4*8 33:3*11 34:2*17 35:5*7 36:6*6 37:1*37 38:2*19 39:3*13 40:5*8 41:1*41 42:6*7 43:1*43 44:4*11 45:5*9 46:2*23 47:1*47 48:6*8 49:7*7 50:5*10 51:3*17 52:4*13 53:1*53 54:6*9 55:5*11 56:7*8 57:3*19 58:2*29 59:1*59 60:6*10 61:1*61 62:2*31 63:7*9 64:8*8 65:5*13 66:6*11 67:1*67 68:4*17 69:3*23 70:7*10 71:1*71 72:8*9 73:1*73 74:2*37 75:5*15 76:4*19 77:7*11 78:6*13 79:1*79 80:8*10 81:9*9 82:2*41 83:1*83 84:7*12 85:5*17 86:2*43 87:3*29 88:8*11 89:1*89 90:9*10 91:7*13 92:4*23 93:3*31 94:2*47 95:5*19 96:8*12 97:1*97 98:7*14 99:9*11 100:10*10 101:1*101 102:6*17 103:1*103 104:8*13 105:7*15 106:2*53 107:1*107 108:9*12 109:1*109 110:10*11 111:3*37 112:8*14 113:1*113 114:6*19 115:5*23 116:4*29 117:9*13 118:2*59 119:7*17 120:10*12 121:11*11 122:2*61 123:3*41 124:4*31 125:5*25 126:9*14 127:1*127 128:8*16 129:3*43 130:10*13 131:1*131 132:11*12 133:7*19 134:2*67 135:9*15 136:8*17 137:1*137 138:6*23 139:1*139 140:10*14 141:3*47 142:2*71 143:11*13 144:12*12 145:5*29 146:2*73 147:7*21 148:4*37 149:1*149 150:10*15 151:1*151 152:8*19 153:9*17 154:11*14 155:5*31 156:12*13 157:1*157 158:2*79 159:3*53 160:10*16 161:7*23 162:9*18 163:1*163 164:4*41 165:11*15 166:2*83 167:1*167 168:12*14 169:13*13 170:10*17 171:9*19 172:4*43 173:1*173 174:6*29 175:7*25 176:11*16 177:3*59 178:2*89 179:1*179 180:12*15 181:1*181 182:13*14 183:3*61 184:8*23 185:5*37 186:6*31 187:11*17 188:4*47 189:9*21 190:10*19 191:1*191 192:12*16 193:1*193 194:2*97 195:13*15 196:14*14 197:1*197 198:11*18 199:1*199 200:10*20 201:3*67 202:2*101 203:7*29 204:12*17 205:5*41 206:2*103 207:9*23 208:13*16 209:11*19 210:14*15 211:1*211 212:4*53 213:3*71 214:2*107 215:5*43 216:12*18 217:7*31 218:2*109 219:3*73 220:11*20 221:13*17 222:6*37 223:1*223 224:14*16 225:15*15 226:2*113 227:1*227 228:12*19 229:1*229 230:10*23 231:11*21 232:8*29 233:1*233 234:13*18 235:5*47 236:4*59 237:3*79 238:14*17 239:1*239 240:15*16 241:1*241 242:11*22 243:9*27 244:4*61 245:7*35 246:6*41 247:13*19 248:8*31 249:3*83 250:10*25 251:1*251 252:14*18 253:11*23 254:2*127 255:15*17 256:16*16 257:1*257 258:6*43 259:7*37 260:13*20 261:9*29 262:2*131 263:1*263 264:12*22 265:5*53 266:14*19 267:3*89 268:4*67 269:1*269 270:15*18 271:1*271 272:16*17 273:13*21 274:2*137 275:11*25 276:12*23 277:1*277 278:2*139 279:9*31 280:14*20 281:1*281 282:6*47 283:1*283 284:4*71 285:15*19 286:13*22 287:7*41 288:16*18 289:17*17 290:10*29 291:3*97 292:4*73 293:1*293 294:14*21 295:5*59 296:8*37 297:11*27 298:2*149 299:13*23 300:15*20 301:7*43 302:2*151 303:3*101 304:16*19 305:5*61 306:17*18 307:1*307 308:14*22 309:3*103 310:10*31 311:1*311 312:13*24 313:1*313 314:2*157 315:15*21 316:4*79 317:1*317 318:6*53 319:11*29 320:16*20 321:3*107 322:14*23 323:17*19 324:18*18 325:13*25 326:2*163 327:3*109 328:8*41 329:7*47 330:15*22 331:1*331 332:4*83 333:9*37 334:2*167 335:5*67 336:16*21 337:1*337 338:13*26 339:3*113 340:17*20 341:11*31 342:18*19 343:7*49 344:8*43 345:15*23 346:2*173 347:1*347 348:12*29 349:1*349 350:14*25 351:13*27 352:16*22 353:1*353 354:6*59 355:5*71 356:4*89 357:17*21 358:2*179 359:1*359 360:18*20 361:19*19 362:2*181 363:11*33 364:14*26 365:5*73 366:6*61 367:1*367 368:16*23 369:9*41 370:10*37 371:7*53 372:12*31 373:1*373 374:17*22 375:15*25 376:8*47 377:13*29 378:18*21 379:1*379 380:19*20 381:3*127 382:2*191 383:1*383 384:16*24 385:11*35 386:2*193 387:9*43 388:4*97 389:1*389 390:15*26 391:17*23 392:14*28 393:3*131 394:2*197 395:5*79 396:18*22 397:1*397 398:2*199 399:19*21 400:20*20 401:1*401 402:6*67 403:13*31 404:4*101 405:15*27 406:14*29 407:11*37 408:17*24 409:1*409 410:10*41 411:3*137 412:4*103 413:7*59 414:18*23 415:5*83 416:16*26 417:3*139 418:19*22 419:1*419 420:20*21 421:1*421 422:2*211 423:9*47 424:8*53 425:17*25 426:6*71 427:7*61 428:4*107 429:13*33 430:10*43 431:1*431 432:18*24 433:1*433 434:14*31 435:15*29 436:4*109 437:19*23 438:6*73 439:1*439 440:20*22 441:21*21 442:17*26 443:1*443 444:12*37 445:5*89 446:2*223 447:3*149 448:16*28 449:1*449 450:18*25 451:11*41 452:4*113 453:3*151 454:2*227 455:13*35 456:19*24 457:1*457 458:2*229 459:17*27 460:20*23 461:1*461 462:21*22 463:1*463 464:16*29 465:15*31 466:2*233 467:1*467 468:18*26 469:7*67 470:10*47 471:3*157 472:8*59 473:11*43 474:6*79 475:19*25 476:17*28 477:9*53 478:2*239 479:1*479 480:20*24 481:13*37 482:2*241 483:21*23 484:22*22 485:5*97 486:18*27 487:1*487 488:8*61 489:3*163 490:14*35 491:1*491 492:12*41 493:17*29 494:19*26 495:15*33 496:16*31 497:7*71 498:6*83 499:1*499 500:20*25 501:3*167 502:2*251 503:1*503 504:21*24 505:5*101 506:22*23 507:13*39 508:4*127 509:1*509 510:17*30 511:7*73 512:16*32 513:19*27 514:2*257 515:5*103 516:12*43 517:11*47 518:14*37 519:3*173 520:20*26 521:1*521 522:18*29 523:1*523 524:4*131 525:21*25 526:2*263 527:17*31 528:22*24 529:23*23 530:10*53 531:9*59 532:19*28 533:13*41 534:6*89 535:5*107 536:8*67 537:3*179 538:2*269 539:11*49 540:20*27 541:1*541 542:2*271 543:3*181 544:17*32 545:5*109 546:21*26 547:1*547 548:4*137 549:9*61 550:22*25 551:19*29 552:23*24 553:7*79 554:2*277 555:15*37 556:4*139 557:1*557 558:18*31 559:13*43 560:20*28 561:17*33 562:2*281 563:1*563 564:12*47 565:5*113 566:2*283 567:21*27 568:8*71 569:1*569 570:19*30 571:1*571 572:22*26 573:3*191 574:14*41 575:23*25 576:24*24 577:1*577 578:17*34 579:3*193 580:20*29 581:7*83 582:6*97 583:11*53 584:8*73 585:15*39 586:2*293 587:1*587 588:21*28 589:19*31 590:10*59 591:3*197 592:16*37 593:1*593 594:22*27 595:17*35 596:4*149 597:3*199 598:23*26 599:1*599 600:24*25 601:1*601 602:14*43 603:9*67 604:4*151 605:11*55 606:6*101 607:1*607 608:19*32 609:21*29 610:10*61 611:13*47 612:18*34 613:1*613 614:2*307 615:15*41 616:22*28 617:1*617 618:6*103 619:1*619 620:20*31 621:23*27 622:2*311 623:7*89 624:24*26 625:25*25 626:2*313 627:19*33 628:4*157 629:17*37 630:21*30 631:1*631 632:8*79 633:3*211 634:2*317 635:5*127 636:12*53 637:13*49 638:22*29 639:9*71 640:20*32 641:1*641 642:6*107 643:1*643 644:23*28 645:15*43 646:19*34 647:1*647 648:24*27 649:11*59 650:25*26 651:21*31 652:4*163 653:1*653 654:6*109 655:5*131 656:16*41 657:9*73 658:14*47 659:1*659 660:22*30 661:1*661 662:2*331 663:17*39 664:8*83 665:19*35 666:18*37 667:23*29 668:4*167 669:3*223 670:10*67 671:11*61 672:24*28 673:1*673 674:2*337 675:25*27 676:26*26 677:1*677 678:6*113 679:7*97 680:20*34 681:3*227 682:22*31 683:1*683 684:19*36 685:5*137 686:14*49 687:3*229 688:16*43 689:13*53 690:23*30 691:1*691 692:4*173 693:21*33 694:2*347 695:5*139 696:24*29 697:17*41 698:2*349 699:3*233 700:25*28 701:1*701 702:26*27 703:19*37 704:22*32 705:15*47 706:2*353 707:7*101 708:12*59 709:1*709 710:10*71 711:9*79 712:8*89 713:23*31 714:21*34 715:13*55 716:4*179 717:3*239 718:2*359 719:1*719 720:24*30 721:7*103 722:19*38 723:3*241 724:4*181 725:25*29 726:22*33 727:1*727 728:26*28 729:27*27 730:10*73 731:17*43 732:12*61 733:1*733 734:2*367 735:21*35 736:23*32 737:11*67 738:18*41 739:1*739 740:20*37 741:19*39 742:14*53 743:1*743 744:24*31 745:5*149 746:2*373 747:9*83 748:22*34 749:7*107 750:25*30 751:1*751 752:16*47 753:3*251 754:26*29 755:5*151 756:27*28 757:1*757 758:2*379 759:23*33 760:20*38 761:1*761 762:6*127 763:7*109 764:4*191 765:17*45 766:2*383 767:13*59 768:24*32 769:1*769 770:22*35 771:3*257 772:4*193 773:1*773 774:18*43 775:25*31 776:8*97 777:21*37 778:2*389 779:19*41 780:26*30 781:11*71 782:23*34 783:27*29 784:28*28 785:5*157 786:6*131 787:1*787 788:4*197 789:3*263 790:10*79 791:7*113 792:24*33 793:13*61 794:2*397 795:15*53 796:4*199 797:1*797 798:21*38 799:17*47 800:25*32 801:9*89 802:2*401 803:11*73 804:12*67 805:23*35 806:26*31 807:3*269 808:8*101 809:1*809 810:27*30 811:1*811 812:28*29 813:3*271 814:22*37 815:5*163 816:24*34 817:19*43 818:2*409 819:21*39 820:20*41 821:1*821 822:6*137 823:1*823 824:8*103 825:25*33 826:14*59 827:1*827 828:23*36 829:1*829 830:10*83 831:3*277 832:26*32 833:17*49 834:6*139 835:5*167 836:22*38 837:27*31 838:2*419 839:1*839 840:28*30 841:29*29 842:2*421 843:3*281 844:4*211 845:13*65 846:18*47 847:11*77 848:16*53 849:3*283 850:25*34 851:23*37 852:12*71 853:1*853 854:14*61 855:19*45 856:8*107 857:1*857 858:26*33 859:1*859 860:20*43 861:21*41 862:2*431 863:1*863 864:27*32 865:5*173 866:2*433 867:17*51 868:28*31 869:11*79 870:29*30 871:13*67 872:8*109 873:9*97 874:23*38 875:25*35 876:12*73 877:1*877 878:2*439 879:3*293 880:22*40 881:1*881 882:21*42 883:1*883 884:26*34 885:15*59 886:2*443 887:1*887 888:24*37 889:7*127 890:10*89 891:27*33 892:4*223 893:19*47 894:6*149 895:5*179 896:28*32 897:23*39 898:2*449 899:29*31 900:30*30 901:17*53 902:22*41 903:21*43 904:8*113 905:5*181 906:6*151 907:1*907 908:4*227 909:9*101 910:26*35 911:1*911 912:24*38 913:11*83 914:2*457 915:15*61 916:4*229 917:7*131 918:27*34 919:1*919 920:23*40 921:3*307 922:2*461 923:13*71 924:28*33 925:25*37 926:2*463 927:9*103 928:29*32 929:1*929 930:30*31 931:19*49 932:4*233 933:3*311 934:2*467 935:17*55 936:26*36 937:1*937 938:14*67 939:3*313 940:20*47 941:1*941 942:6*157 943:23*41 944:16*59 945:27*35 946:22*43 947:1*947 948:12*79 949:13*73 950:25*38 951:3*317 952:28*34 953:1*953 954:18*53 955:5*191 956:4*239 957:29*33 958:2*479 959:7*137 960:30*32 961:31*31 962:26*37 963:9*107 964:4*241 965:5*193 966:23*42 967:1*967 968:22*44 969:19*51 970:10*97 971:1*971 972:27*36 973:7*139 974:2*487 975:25*39 976:16*61 977:1*977 978:6*163 979:11*89 980:28*35 981:9*109 982:2*491 983:1*983 984:24*41 985:5*197 986:29*34 987:21*47 988:26*38 989:23*43 990:30*33 991:1*991 992:31*32 993:3*331 994:14*71 995:5*199 996:12*83 997:1*997 998:2*499 999:27*37 1000:25*40