一个整数,个位是4,把4移动到首位,则变为原来4倍,那么这个数是?

//
//  main.c
//  Math_SolveNumber
//
//  Created by Mac on 2023/2/25.
//


/**
 问题:
 一个整数,个位是4,把4移动到首位,则变为原来4倍,那么这个数是?
 
 解法1: 暴力破解法  brute force
 假设4前面的数是A,A有n位。
 则4*(10*A + 4) = 4*10^n + A  n:[1.....]
 39*A + 16 = 4*10^n
 A = (4*10^n - 16)/39
 
 解法2: 竖式法  Column Multiplication
    ...a6 a5 a4 a3 a2 a1 4
 *                 4
 ------------------------------------
    4 ....a6 a5 a4 a3 a2 a1
 4*4=16  ->  a1:6 -> a2:5 ->.....
 
 
 解法3:构造法。 Structure
设 K=0.an.....a3a2a14 an....a3a2a14 ......     //an.....a3a2a14  循环节
 4K=0.4an....a3a2a1 4an...a3a2a2 .....       //4an....a3a2a1  循环节
 40K=4 + K
 K = 4/39       计算这个分数,如果第一位开始就是无限循环小数,则循环节就是解。
 
注:
1, u64.max = 1844 6744 0737 0955 1615 < 1.9*10^19 由于还要乘以倍数 所以 n最大取18
2, 没有过滤掉首位为0的数
 */
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define YES 1
#define NO 0

typedef struct{
    uint8_t lastDigit;  //尾数4
    uint8_t times;      //移到前面后的倍数
} SolverNum_Condition_t;

static struct{
    uint8_t printFailItems;//打印失败项信息
    uint8_t breakOnHit;//找到一个即退出
    uint8_t columnMuti_maxDigit;//最大寻找位数
}SolverNum_s_config;


void SolverNum_BruteForce(void)
{
    printf("\n\nBruteForce()");
    for (int n = 1; n<18; n++) {
        uint64_t numerator = 4*powl(10,n) - 16;
        uint64_t A = numerator / 39;
        double  Af = numerator / 39.0;
        uint64_t remainder = numerator % 39;
        
        if(remainder == 0)
        {
            printf("\nn:%02d remainder:%lld \t  Yes \t A:%lld =>%lld*4=%lld",n,remainder,A,10*A+4,(10*A+4)*4);
        }else if(SolverNum_s_config.printFailItems){
            printf("\nn:%02d remainder:%lld \t  Not \t A:%.6f",n,remainder,Af);
        }
    }
}

void SolverNum_BruteForceEx(SolverNum_Condition_t param)
{
    printf("\n\nBruteForceEx(lastDigte:%d,times:%d)",param.lastDigit,param.times);
    for (int n = 1; n<18; n++) {
        uint64_t numerator = param.lastDigit * powl(10,n) - param.times*param.lastDigit;
        uint64_t denominator = (param.times * 10 - 1);
        uint64_t A = numerator / denominator;
        double  Af = numerator * 1.0 / denominator;
        uint64_t remainder = numerator % denominator;
        
        if(remainder == 0)
        {
            printf("\nn:%02d remainder:%lld \t  Yes \t A:%lld =>%lld*%d=%lld",n,remainder,A,10*A+param.lastDigit,param.times, (10*A+param.lastDigit)*param.times);
        }else if(SolverNum_s_config.printFailItems){
            printf("\nn:%02d remainder:%lld \t  Not \t A:%.6f",n,remainder,Af);
        }
    }
}

void SolverNum_ColumnMultiEx(SolverNum_Condition_t param)
{
    printf("\n\nColumnMultiEx(lastDigte:%d,times:%d)",param.lastDigit,param.times);
    uint8_t *pOriginNum = malloc(SolverNum_s_config.columnMuti_maxDigit);
    uint8_t *pNewNum = malloc(SolverNum_s_config.columnMuti_maxDigit);
    for (int i = 0; i<SolverNum_s_config.columnMuti_maxDigit; i++) {
        pOriginNum[i] = 0;
        pNewNum[i] = 0;
    }
    
    pOriginNum[0] = param.lastDigit;
    uint8_t u1CarriedOver  = 0;
    for (int i = 0; i<SolverNum_s_config.columnMuti_maxDigit; i++) {
        uint8_t tmpProduct = pOriginNum[i] * param.times + u1CarriedOver;
        pNewNum[i] = tmpProduct%10;
        u1CarriedOver = tmpProduct/10;
        if (u1CarriedOver == 0 && pNewNum[i] == param.lastDigit) {
            printf("\n");
            for (int j = i; j >= 0; j--) {
                printf("%d",pOriginNum[j]);
            }
            printf("*%d=",param.times);
            for (int j = i; j >= 0; j--) {
                printf("%d",pNewNum[j]);
            }
            if (SolverNum_s_config.breakOnHit) {
                break;
            }
        }
        pOriginNum[i+1] = pNewNum[i];
    }
    free(pOriginNum);
    free(pNewNum);
}
/*
解法3:构造法。 Structure
设 K=0.an.....a3a2a14 an....a3a2a14 ......     //an.....a3a2a14  循环节
4K=0.4an....a3a2a1 4an...a3a2a2 .....       //4an....a3a2a1  循环节
40K=4 + K
K = 4/39       计算这个分数,如果第一位开始就是无限循环小数,则循环节就是解。
 */

void SolverNum_Structure(SolverNum_Condition_t param)
{
    printf("\n\nStructure(lastDigte:%d,times:%d)",param.lastDigit,param.times);
    int numerator = param.lastDigit;
    int denominator = param.times*10 - 1;
    double value = numerator *1.0/denominator;
    printf("\n %d/%d -> %.20f",numerator,denominator, value);
    for (int i = 1; i < 18; i++) {
        uint64_t num99 = powl(10, i) - 1;
        if(num99%denominator == 0)
        {
            uint64_t newNumerator = num99/denominator*numerator;
            printf(" -> %lld*%d=%lld",newNumerator,param.times,newNumerator*param.times);
            if(SolverNum_s_config.breakOnHit)
                break;
        }
    }
}

#define TEST_BRUTEFORCE 1
#define TEST_BRUTEFORCEEX  1
#define TEST_COLUMNMULTIEX  1
#define TEST_STRUCTURE  1
int main(int argc, const char * argv[])
{
    SolverNum_Condition_t param;
    
#if TEST_BRUTEFORCE
    SolverNum_s_config.printFailItems = YES;
    SolverNum_s_config.breakOnHit = NO;
    SolverNum_BruteForce();
#endif
    
#if TEST_BRUTEFORCEEX
    SolverNum_s_config.printFailItems = NO;
    SolverNum_s_config.breakOnHit = NO;
    for(int i = 1; i < 10; i++)
    {
        for (int j = 1; j<10; j++) {
            param.lastDigit=i;
            param.times = j;
            SolverNum_BruteForceEx(param);
        }
    }
#endif
    
#if TEST_COLUMNMULTIEX
    SolverNum_s_config.columnMuti_maxDigit = 100;
    SolverNum_s_config.breakOnHit = YES;
    for(int i = 1; i < 10; i++)
    {
        for (int j = 1; j<10; j++) {
            param.lastDigit=i;
            param.times = j;
            SolverNum_ColumnMultiEx(param);
        }
    }
#endif
    
    
#if TEST_STRUCTURE
    for(int i = 1; i < 10; i++)
    {
        for (int j = 1; j<10; j++) {
            param.lastDigit=i;
            param.times = j;
            SolverNum_Structure(param);
        }
    }
#endif
    
    return 0;
}


/**
 BruteForce()
 n:01 remainder:24       Not      A:0.615385
 n:02 remainder:33       Not      A:9.846154
 n:03 remainder:6       Not      A:102.153846
 n:04 remainder:9       Not      A:1025.230769
 n:05 remainder:0       Yes      A:10256 =>102564*4=410256
 n:06 remainder:27       Not      A:102563.692308
 n:07 remainder:24       Not      A:1025640.615385
 n:08 remainder:33       Not      A:10256409.846154
 n:09 remainder:6       Not      A:102564102.153846
 n:10 remainder:9       Not      A:1025641025.230769
 n:11 remainder:0       Yes      A:10256410256 =>102564102564*4=410256410256
 n:12 remainder:27       Not      A:102564102563.692307
 n:13 remainder:24       Not      A:1025641025640.615356
 n:14 remainder:33       Not      A:10256410256409.845703
 n:15 remainder:6       Not      A:102564102564102.156250
 n:16 remainder:9       Not      A:1025641025641025.250000
 n:17 remainder:0       Yes      A:10256410256410256 =>102564102564102564*4=410256410256410256

 BruteForceEx(lastDigte:1,times:1)
 n:01 remainder:0       Yes      A:1 =>11*1=11
 n:02 remainder:0       Yes      A:11 =>111*1=111
 n:03 remainder:0       Yes      A:111 =>1111*1=1111
 n:04 remainder:0       Yes      A:1111 =>11111*1=11111
 n:05 remainder:0       Yes      A:11111 =>111111*1=111111
 n:06 remainder:0       Yes      A:111111 =>1111111*1=1111111
 n:07 remainder:0       Yes      A:1111111 =>11111111*1=11111111
 n:08 remainder:0       Yes      A:11111111 =>111111111*1=111111111
 n:09 remainder:0       Yes      A:111111111 =>1111111111*1=1111111111
 n:10 remainder:0       Yes      A:1111111111 =>11111111111*1=11111111111
 n:11 remainder:0       Yes      A:11111111111 =>111111111111*1=111111111111
 n:12 remainder:0       Yes      A:111111111111 =>1111111111111*1=1111111111111
 n:13 remainder:0       Yes      A:1111111111111 =>11111111111111*1=11111111111111
 n:14 remainder:0       Yes      A:11111111111111 =>111111111111111*1=111111111111111
 n:15 remainder:0       Yes      A:111111111111111 =>1111111111111111*1=1111111111111111
 n:16 remainder:0       Yes      A:1111111111111111 =>11111111111111111*1=11111111111111111
 n:17 remainder:0       Yes      A:11111111111111111 =>111111111111111111*1=111111111111111111

 BruteForceEx(lastDigte:1,times:2)
 n:17 remainder:0       Yes      A:5263157894736842 =>52631578947368421*2=105263157894736842

 BruteForceEx(lastDigte:1,times:3)

 BruteForceEx(lastDigte:1,times:4)
 n:05 remainder:0       Yes      A:2564 =>25641*4=102564
 n:11 remainder:0       Yes      A:2564102564 =>25641025641*4=102564102564
 n:17 remainder:0       Yes      A:2564102564102564 =>25641025641025641*4=102564102564102564

 BruteForceEx(lastDigte:1,times:5)

 BruteForceEx(lastDigte:1,times:6)

 BruteForceEx(lastDigte:1,times:7)

 BruteForceEx(lastDigte:1,times:8)
 n:12 remainder:0       Yes      A:12658227848 =>126582278481*8=1012658227848

 BruteForceEx(lastDigte:1,times:9)

 BruteForceEx(lastDigte:2,times:1)
 n:01 remainder:0       Yes      A:2 =>22*1=22
 n:02 remainder:0       Yes      A:22 =>222*1=222
 n:03 remainder:0       Yes      A:222 =>2222*1=2222
 n:04 remainder:0       Yes      A:2222 =>22222*1=22222
 n:05 remainder:0       Yes      A:22222 =>222222*1=222222
 n:06 remainder:0       Yes      A:222222 =>2222222*1=2222222
 n:07 remainder:0       Yes      A:2222222 =>22222222*1=22222222
 n:08 remainder:0       Yes      A:22222222 =>222222222*1=222222222
 n:09 remainder:0       Yes      A:222222222 =>2222222222*1=2222222222
 n:10 remainder:0       Yes      A:2222222222 =>22222222222*1=22222222222
 n:11 remainder:0       Yes      A:22222222222 =>222222222222*1=222222222222
 n:12 remainder:0       Yes      A:222222222222 =>2222222222222*1=2222222222222
 n:13 remainder:0       Yes      A:2222222222222 =>22222222222222*1=22222222222222
 n:14 remainder:0       Yes      A:22222222222222 =>222222222222222*1=222222222222222
 n:15 remainder:0       Yes      A:222222222222222 =>2222222222222222*1=2222222222222222
 n:16 remainder:0       Yes      A:2222222222222222 =>22222222222222222*1=22222222222222222
 n:17 remainder:0       Yes      A:22222222222222222 =>222222222222222222*1=222222222222222222

 BruteForceEx(lastDigte:2,times:2)
 n:17 remainder:0       Yes      A:10526315789473684 =>105263157894736842*2=210526315789473684

 BruteForceEx(lastDigte:2,times:3)

 BruteForceEx(lastDigte:2,times:4)
 n:05 remainder:0       Yes      A:5128 =>51282*4=205128
 n:11 remainder:0       Yes      A:5128205128 =>51282051282*4=205128205128
 n:17 remainder:0       Yes      A:5128205128205128 =>51282051282051282*4=205128205128205128

 BruteForceEx(lastDigte:2,times:5)

 BruteForceEx(lastDigte:2,times:6)

 BruteForceEx(lastDigte:2,times:7)

 BruteForceEx(lastDigte:2,times:8)
 n:12 remainder:0       Yes      A:25316455696 =>253164556962*8=2025316455696

 BruteForceEx(lastDigte:2,times:9)

 BruteForceEx(lastDigte:3,times:1)
 n:01 remainder:0       Yes      A:3 =>33*1=33
 n:02 remainder:0       Yes      A:33 =>333*1=333
 n:03 remainder:0       Yes      A:333 =>3333*1=3333
 n:04 remainder:0       Yes      A:3333 =>33333*1=33333
 n:05 remainder:0       Yes      A:33333 =>333333*1=333333
 n:06 remainder:0       Yes      A:333333 =>3333333*1=3333333
 n:07 remainder:0       Yes      A:3333333 =>33333333*1=33333333
 n:08 remainder:0       Yes      A:33333333 =>333333333*1=333333333
 n:09 remainder:0       Yes      A:333333333 =>3333333333*1=3333333333
 n:10 remainder:0       Yes      A:3333333333 =>33333333333*1=33333333333
 n:11 remainder:0       Yes      A:33333333333 =>333333333333*1=333333333333
 n:12 remainder:0       Yes      A:333333333333 =>3333333333333*1=3333333333333
 n:13 remainder:0       Yes      A:3333333333333 =>33333333333333*1=33333333333333
 n:14 remainder:0       Yes      A:33333333333333 =>333333333333333*1=333333333333333
 n:15 remainder:0       Yes      A:333333333333333 =>3333333333333333*1=3333333333333333
 n:16 remainder:0       Yes      A:3333333333333333 =>33333333333333333*1=33333333333333333
 n:17 remainder:0       Yes      A:33333333333333333 =>333333333333333333*1=333333333333333333

 BruteForceEx(lastDigte:3,times:2)
 n:17 remainder:0       Yes      A:15789473684210526 =>157894736842105263*2=315789473684210526

 BruteForceEx(lastDigte:3,times:3)

 BruteForceEx(lastDigte:3,times:4)
 n:05 remainder:0       Yes      A:7692 =>76923*4=307692
 n:11 remainder:0       Yes      A:7692307692 =>76923076923*4=307692307692
 n:17 remainder:0       Yes      A:7692307692307692 =>76923076923076923*4=307692307692307692

 BruteForceEx(lastDigte:3,times:5)

 BruteForceEx(lastDigte:3,times:6)

 BruteForceEx(lastDigte:3,times:7)

 BruteForceEx(lastDigte:3,times:8)
 n:12 remainder:0       Yes      A:37974683544 =>379746835443*8=3037974683544

 BruteForceEx(lastDigte:3,times:9)

 BruteForceEx(lastDigte:4,times:1)
 n:01 remainder:0       Yes      A:4 =>44*1=44
 n:02 remainder:0       Yes      A:44 =>444*1=444
 n:03 remainder:0       Yes      A:444 =>4444*1=4444
 n:04 remainder:0       Yes      A:4444 =>44444*1=44444
 n:05 remainder:0       Yes      A:44444 =>444444*1=444444
 n:06 remainder:0       Yes      A:444444 =>4444444*1=4444444
 n:07 remainder:0       Yes      A:4444444 =>44444444*1=44444444
 n:08 remainder:0       Yes      A:44444444 =>444444444*1=444444444
 n:09 remainder:0       Yes      A:444444444 =>4444444444*1=4444444444
 n:10 remainder:0       Yes      A:4444444444 =>44444444444*1=44444444444
 n:11 remainder:0       Yes      A:44444444444 =>444444444444*1=444444444444
 n:12 remainder:0       Yes      A:444444444444 =>4444444444444*1=4444444444444
 n:13 remainder:0       Yes      A:4444444444444 =>44444444444444*1=44444444444444
 n:14 remainder:0       Yes      A:44444444444444 =>444444444444444*1=444444444444444
 n:15 remainder:0       Yes      A:444444444444444 =>4444444444444444*1=4444444444444444
 n:16 remainder:0       Yes      A:4444444444444444 =>44444444444444444*1=44444444444444444
 n:17 remainder:0       Yes      A:44444444444444444 =>444444444444444444*1=444444444444444444

 BruteForceEx(lastDigte:4,times:2)
 n:17 remainder:0       Yes      A:21052631578947368 =>210526315789473684*2=421052631578947368

 BruteForceEx(lastDigte:4,times:3)

 BruteForceEx(lastDigte:4,times:4)
 n:05 remainder:0       Yes      A:10256 =>102564*4=410256
 n:11 remainder:0       Yes      A:10256410256 =>102564102564*4=410256410256
 n:17 remainder:0       Yes      A:10256410256410256 =>102564102564102564*4=410256410256410256

 BruteForceEx(lastDigte:4,times:5)

 BruteForceEx(lastDigte:4,times:6)

 BruteForceEx(lastDigte:4,times:7)

 BruteForceEx(lastDigte:4,times:8)
 n:12 remainder:0       Yes      A:50632911392 =>506329113924*8=4050632911392

 BruteForceEx(lastDigte:4,times:9)

 BruteForceEx(lastDigte:5,times:1)
 n:01 remainder:0       Yes      A:5 =>55*1=55
 n:02 remainder:0       Yes      A:55 =>555*1=555
 n:03 remainder:0       Yes      A:555 =>5555*1=5555
 n:04 remainder:0       Yes      A:5555 =>55555*1=55555
 n:05 remainder:0       Yes      A:55555 =>555555*1=555555
 n:06 remainder:0       Yes      A:555555 =>5555555*1=5555555
 n:07 remainder:0       Yes      A:5555555 =>55555555*1=55555555
 n:08 remainder:0       Yes      A:55555555 =>555555555*1=555555555
 n:09 remainder:0       Yes      A:555555555 =>5555555555*1=5555555555
 n:10 remainder:0       Yes      A:5555555555 =>55555555555*1=55555555555
 n:11 remainder:0       Yes      A:55555555555 =>555555555555*1=555555555555
 n:12 remainder:0       Yes      A:555555555555 =>5555555555555*1=5555555555555
 n:13 remainder:0       Yes      A:5555555555555 =>55555555555555*1=55555555555555
 n:14 remainder:0       Yes      A:55555555555555 =>555555555555555*1=555555555555555
 n:15 remainder:0       Yes      A:555555555555555 =>5555555555555555*1=5555555555555555
 n:16 remainder:0       Yes      A:5555555555555555 =>55555555555555555*1=55555555555555555
 n:17 remainder:0       Yes      A:55555555555555555 =>555555555555555555*1=555555555555555555

 BruteForceEx(lastDigte:5,times:2)
 n:17 remainder:0       Yes      A:26315789473684210 =>263157894736842105*2=526315789473684210

 BruteForceEx(lastDigte:5,times:3)

 BruteForceEx(lastDigte:5,times:4)
 n:05 remainder:0       Yes      A:12820 =>128205*4=512820
 n:11 remainder:0       Yes      A:12820512820 =>128205128205*4=512820512820
 n:17 remainder:0       Yes      A:12820512820512820 =>128205128205128205*4=512820512820512820

 BruteForceEx(lastDigte:5,times:5)

 BruteForceEx(lastDigte:5,times:6)

 BruteForceEx(lastDigte:5,times:7)

 BruteForceEx(lastDigte:5,times:8)
 n:12 remainder:0       Yes      A:63291139240 =>632911392405*8=5063291139240

 BruteForceEx(lastDigte:5,times:9)

 BruteForceEx(lastDigte:6,times:1)
 n:01 remainder:0       Yes      A:6 =>66*1=66
 n:02 remainder:0       Yes      A:66 =>666*1=666
 n:03 remainder:0       Yes      A:666 =>6666*1=6666
 n:04 remainder:0       Yes      A:6666 =>66666*1=66666
 n:05 remainder:0       Yes      A:66666 =>666666*1=666666
 n:06 remainder:0       Yes      A:666666 =>6666666*1=6666666
 n:07 remainder:0       Yes      A:6666666 =>66666666*1=66666666
 n:08 remainder:0       Yes      A:66666666 =>666666666*1=666666666
 n:09 remainder:0       Yes      A:666666666 =>6666666666*1=6666666666
 n:10 remainder:0       Yes      A:6666666666 =>66666666666*1=66666666666
 n:11 remainder:0       Yes      A:66666666666 =>666666666666*1=666666666666
 n:12 remainder:0       Yes      A:666666666666 =>6666666666666*1=6666666666666
 n:13 remainder:0       Yes      A:6666666666666 =>66666666666666*1=66666666666666
 n:14 remainder:0       Yes      A:66666666666666 =>666666666666666*1=666666666666666
 n:15 remainder:0       Yes      A:666666666666666 =>6666666666666666*1=6666666666666666
 n:16 remainder:0       Yes      A:6666666666666666 =>66666666666666666*1=66666666666666666
 n:17 remainder:0       Yes      A:66666666666666666 =>666666666666666666*1=666666666666666666

 BruteForceEx(lastDigte:6,times:2)
 n:17 remainder:0       Yes      A:31578947368421052 =>315789473684210526*2=631578947368421052

 BruteForceEx(lastDigte:6,times:3)

 BruteForceEx(lastDigte:6,times:4)
 n:05 remainder:0       Yes      A:15384 =>153846*4=615384
 n:11 remainder:0       Yes      A:15384615384 =>153846153846*4=615384615384
 n:17 remainder:0       Yes      A:15384615384615384 =>153846153846153846*4=615384615384615384

 BruteForceEx(lastDigte:6,times:5)

 BruteForceEx(lastDigte:6,times:6)

 BruteForceEx(lastDigte:6,times:7)

 BruteForceEx(lastDigte:6,times:8)
 n:12 remainder:0       Yes      A:75949367088 =>759493670886*8=6075949367088

 BruteForceEx(lastDigte:6,times:9)

 BruteForceEx(lastDigte:7,times:1)
 n:01 remainder:0       Yes      A:7 =>77*1=77
 n:02 remainder:0       Yes      A:77 =>777*1=777
 n:03 remainder:0       Yes      A:777 =>7777*1=7777
 n:04 remainder:0       Yes      A:7777 =>77777*1=77777
 n:05 remainder:0       Yes      A:77777 =>777777*1=777777
 n:06 remainder:0       Yes      A:777777 =>7777777*1=7777777
 n:07 remainder:0       Yes      A:7777777 =>77777777*1=77777777
 n:08 remainder:0       Yes      A:77777777 =>777777777*1=777777777
 n:09 remainder:0       Yes      A:777777777 =>7777777777*1=7777777777
 n:10 remainder:0       Yes      A:7777777777 =>77777777777*1=77777777777
 n:11 remainder:0       Yes      A:77777777777 =>777777777777*1=777777777777
 n:12 remainder:0       Yes      A:777777777777 =>7777777777777*1=7777777777777
 n:13 remainder:0       Yes      A:7777777777777 =>77777777777777*1=77777777777777
 n:14 remainder:0       Yes      A:77777777777777 =>777777777777777*1=777777777777777
 n:15 remainder:0       Yes      A:777777777777777 =>7777777777777777*1=7777777777777777
 n:16 remainder:0       Yes      A:7777777777777777 =>77777777777777777*1=77777777777777777
 n:17 remainder:0       Yes      A:77777777777777777 =>777777777777777777*1=777777777777777777

 BruteForceEx(lastDigte:7,times:2)
 n:17 remainder:0       Yes      A:36842105263157894 =>368421052631578947*2=736842105263157894

 BruteForceEx(lastDigte:7,times:3)

 BruteForceEx(lastDigte:7,times:4)
 n:05 remainder:0       Yes      A:17948 =>179487*4=717948
 n:11 remainder:0       Yes      A:17948717948 =>179487179487*4=717948717948
 n:17 remainder:0       Yes      A:17948717948717948 =>179487179487179487*4=717948717948717948

 BruteForceEx(lastDigte:7,times:5)
 n:05 remainder:0       Yes      A:14285 =>142857*5=714285
 n:11 remainder:0       Yes      A:14285714285 =>142857142857*5=714285714285
 n:17 remainder:0       Yes      A:14285714285714285 =>142857142857142857*5=714285714285714285

 BruteForceEx(lastDigte:7,times:6)

 BruteForceEx(lastDigte:7,times:7)

 BruteForceEx(lastDigte:7,times:8)
 n:12 remainder:0       Yes      A:88607594936 =>886075949367*8=7088607594936

 BruteForceEx(lastDigte:7,times:9)

 BruteForceEx(lastDigte:8,times:1)
 n:01 remainder:0       Yes      A:8 =>88*1=88
 n:02 remainder:0       Yes      A:88 =>888*1=888
 n:03 remainder:0       Yes      A:888 =>8888*1=8888
 n:04 remainder:0       Yes      A:8888 =>88888*1=88888
 n:05 remainder:0       Yes      A:88888 =>888888*1=888888
 n:06 remainder:0       Yes      A:888888 =>8888888*1=8888888
 n:07 remainder:0       Yes      A:8888888 =>88888888*1=88888888
 n:08 remainder:0       Yes      A:88888888 =>888888888*1=888888888
 n:09 remainder:0       Yes      A:888888888 =>8888888888*1=8888888888
 n:10 remainder:0       Yes      A:8888888888 =>88888888888*1=88888888888
 n:11 remainder:0       Yes      A:88888888888 =>888888888888*1=888888888888
 n:12 remainder:0       Yes      A:888888888888 =>8888888888888*1=8888888888888
 n:13 remainder:0       Yes      A:8888888888888 =>88888888888888*1=88888888888888
 n:14 remainder:0       Yes      A:88888888888888 =>888888888888888*1=888888888888888
 n:15 remainder:0       Yes      A:888888888888888 =>8888888888888888*1=8888888888888888
 n:16 remainder:0       Yes      A:8888888888888888 =>88888888888888888*1=88888888888888888
 n:17 remainder:0       Yes      A:88888888888888888 =>888888888888888888*1=888888888888888888

 BruteForceEx(lastDigte:8,times:2)
 n:17 remainder:0       Yes      A:42105263157894736 =>421052631578947368*2=842105263157894736

 BruteForceEx(lastDigte:8,times:3)

 BruteForceEx(lastDigte:8,times:4)
 n:05 remainder:0       Yes      A:20512 =>205128*4=820512
 n:11 remainder:0       Yes      A:20512820512 =>205128205128*4=820512820512
 n:17 remainder:0       Yes      A:20512820512820512 =>205128205128205128*4=820512820512820512

 BruteForceEx(lastDigte:8,times:5)

 BruteForceEx(lastDigte:8,times:6)

 BruteForceEx(lastDigte:8,times:7)

 BruteForceEx(lastDigte:8,times:8)
 n:12 remainder:0       Yes      A:101265822784 =>1012658227848*8=8101265822784

 BruteForceEx(lastDigte:8,times:9)

 BruteForceEx(lastDigte:9,times:1)
 n:01 remainder:0       Yes      A:9 =>99*1=99
 n:02 remainder:0       Yes      A:99 =>999*1=999
 n:03 remainder:0       Yes      A:999 =>9999*1=9999
 n:04 remainder:0       Yes      A:9999 =>99999*1=99999
 n:05 remainder:0       Yes      A:99999 =>999999*1=999999
 n:06 remainder:0       Yes      A:999999 =>9999999*1=9999999
 n:07 remainder:0       Yes      A:9999999 =>99999999*1=99999999
 n:08 remainder:0       Yes      A:99999999 =>999999999*1=999999999
 n:09 remainder:0       Yes      A:999999999 =>9999999999*1=9999999999
 n:10 remainder:0       Yes      A:9999999999 =>99999999999*1=99999999999
 n:11 remainder:0       Yes      A:99999999999 =>999999999999*1=999999999999
 n:12 remainder:0       Yes      A:999999999999 =>9999999999999*1=9999999999999
 n:13 remainder:0       Yes      A:9999999999999 =>99999999999999*1=99999999999999
 n:14 remainder:0       Yes      A:99999999999999 =>999999999999999*1=999999999999999
 n:15 remainder:0       Yes      A:999999999999999 =>9999999999999999*1=9999999999999999
 n:16 remainder:0       Yes      A:9999999999999999 =>99999999999999999*1=99999999999999999
 n:17 remainder:0       Yes      A:99999999999999999 =>999999999999999999*1=999999999999999999

 BruteForceEx(lastDigte:9,times:2)
 n:17 remainder:0       Yes      A:47368421052631578 =>473684210526315789*2=947368421052631578

 BruteForceEx(lastDigte:9,times:3)

 BruteForceEx(lastDigte:9,times:4)
 n:05 remainder:0       Yes      A:23076 =>230769*4=923076
 n:11 remainder:0       Yes      A:23076923076 =>230769230769*4=923076923076
 n:17 remainder:0       Yes      A:23076923076923076 =>230769230769230769*4=923076923076923076

 BruteForceEx(lastDigte:9,times:5)

 BruteForceEx(lastDigte:9,times:6)

 BruteForceEx(lastDigte:9,times:7)

 BruteForceEx(lastDigte:9,times:8)
 n:12 remainder:0       Yes      A:113924050632 =>1139240506329*8=9113924050632

 BruteForceEx(lastDigte:9,times:9)

 ColumnMultiEx(lastDigte:1,times:1)
 1*1=1

 ColumnMultiEx(lastDigte:1,times:2)
 052631578947368421*2=105263157894736842

 ColumnMultiEx(lastDigte:1,times:3)
 0344827586206896551724137931*3=1034482758620689655172413793

 ColumnMultiEx(lastDigte:1,times:4)
 025641*4=102564

 ColumnMultiEx(lastDigte:1,times:5)
 020408163265306122448979591836734693877551*5=102040816326530612244897959183673469387755

 ColumnMultiEx(lastDigte:1,times:6)
 0169491525423728813559322033898305084745762711864406779661*6=1016949152542372881355932203389830508474576271186440677966

 ColumnMultiEx(lastDigte:1,times:7)
 0144927536231884057971*7=1014492753623188405797

 ColumnMultiEx(lastDigte:1,times:8)
 0126582278481*8=1012658227848

 ColumnMultiEx(lastDigte:1,times:9)
 01123595505617977528089887640449438202247191*9=10112359550561797752808988764044943820224719

 ColumnMultiEx(lastDigte:2,times:1)
 2*1=2

 ColumnMultiEx(lastDigte:2,times:2)
 105263157894736842*2=210526315789473684

 ColumnMultiEx(lastDigte:2,times:3)
 0689655172413793103448275862*3=2068965517241379310344827586

 ColumnMultiEx(lastDigte:2,times:4)
 051282*4=205128

 ColumnMultiEx(lastDigte:2,times:5)
 040816326530612244897959183673469387755102*5=204081632653061224489795918367346938775510

 ColumnMultiEx(lastDigte:2,times:6)
 0338983050847457627118644067796610169491525423728813559322*6=2033898305084745762711864406779661016949152542372881355932

 ColumnMultiEx(lastDigte:2,times:7)
 0289855072463768115942*7=2028985507246376811594

 ColumnMultiEx(lastDigte:2,times:8)
 0253164556962*8=2025316455696

 ColumnMultiEx(lastDigte:2,times:9)
 02247191011235955056179775280898876404494382*9=20224719101123595505617977528089887640449438

 ColumnMultiEx(lastDigte:3,times:1)
 3*1=3

 ColumnMultiEx(lastDigte:3,times:2)
 157894736842105263*2=315789473684210526

 ColumnMultiEx(lastDigte:3,times:3)
 1034482758620689655172413793*3=3103448275862068965517241379

 ColumnMultiEx(lastDigte:3,times:4)
 076923*4=307692

 ColumnMultiEx(lastDigte:3,times:5)
 061224489795918367346938775510204081632653*5=306122448979591836734693877551020408163265

 ColumnMultiEx(lastDigte:3,times:6)
 0508474576271186440677966101694915254237288135593220338983*6=3050847457627118644067796610169491525423728813559322033898

 ColumnMultiEx(lastDigte:3,times:7)
 0434782608695652173913*7=3043478260869565217391

 ColumnMultiEx(lastDigte:3,times:8)
 0379746835443*8=3037974683544

 ColumnMultiEx(lastDigte:3,times:9)
 03370786516853932584269662921348314606741573*9=30337078651685393258426966292134831460674157

 ColumnMultiEx(lastDigte:4,times:1)
 4*1=4

 ColumnMultiEx(lastDigte:4,times:2)
 210526315789473684*2=421052631578947368

 ColumnMultiEx(lastDigte:4,times:3)
 1379310344827586206896551724*3=4137931034482758620689655172

 ColumnMultiEx(lastDigte:4,times:4)
 102564*4=410256

 ColumnMultiEx(lastDigte:4,times:5)
 081632653061224489795918367346938775510204*5=408163265306122448979591836734693877551020

 ColumnMultiEx(lastDigte:4,times:6)
 0677966101694915254237288135593220338983050847457627118644*6=4067796610169491525423728813559322033898305084745762711864

 ColumnMultiEx(lastDigte:4,times:7)
 0579710144927536231884*7=4057971014492753623188

 ColumnMultiEx(lastDigte:4,times:8)
 0506329113924*8=4050632911392

 ColumnMultiEx(lastDigte:4,times:9)
 04494382022471910112359550561797752808988764*9=40449438202247191011235955056179775280898876

 ColumnMultiEx(lastDigte:5,times:1)
 5*1=5

 ColumnMultiEx(lastDigte:5,times:2)
 263157894736842105*2=526315789473684210

 ColumnMultiEx(lastDigte:5,times:3)
 1724137931034482758620689655*3=5172413793103448275862068965

 ColumnMultiEx(lastDigte:5,times:4)
 128205*4=512820

 ColumnMultiEx(lastDigte:5,times:5)
 102040816326530612244897959183673469387755*5=510204081632653061224489795918367346938775

 ColumnMultiEx(lastDigte:5,times:6)
 0847457627118644067796610169491525423728813559322033898305*6=5084745762711864406779661016949152542372881355932203389830

 ColumnMultiEx(lastDigte:5,times:7)
 0724637681159420289855*7=5072463768115942028985

 ColumnMultiEx(lastDigte:5,times:8)
 0632911392405*8=5063291139240

 ColumnMultiEx(lastDigte:5,times:9)
 05617977528089887640449438202247191011235955*9=50561797752808988764044943820224719101123595

 ColumnMultiEx(lastDigte:6,times:1)
 6*1=6

 ColumnMultiEx(lastDigte:6,times:2)
 315789473684210526*2=631578947368421052

 ColumnMultiEx(lastDigte:6,times:3)
 2068965517241379310344827586*3=6206896551724137931034482758

 ColumnMultiEx(lastDigte:6,times:4)
 153846*4=615384

 ColumnMultiEx(lastDigte:6,times:5)
 122448979591836734693877551020408163265306*5=612244897959183673469387755102040816326530

 ColumnMultiEx(lastDigte:6,times:6)
 1016949152542372881355932203389830508474576271186440677966*6=6101694915254237288135593220338983050847457627118644067796

 ColumnMultiEx(lastDigte:6,times:7)
 0869565217391304347826*7=6086956521739130434782

 ColumnMultiEx(lastDigte:6,times:8)
 0759493670886*8=6075949367088

 ColumnMultiEx(lastDigte:6,times:9)
 06741573033707865168539325842696629213483146*9=60674157303370786516853932584269662921348314

 ColumnMultiEx(lastDigte:7,times:1)
 7*1=7

 ColumnMultiEx(lastDigte:7,times:2)
 368421052631578947*2=736842105263157894

 ColumnMultiEx(lastDigte:7,times:3)
 2413793103448275862068965517*3=7241379310344827586206896551

 ColumnMultiEx(lastDigte:7,times:4)
 179487*4=717948

 ColumnMultiEx(lastDigte:7,times:5)
 142857*5=714285

 ColumnMultiEx(lastDigte:7,times:6)
 1186440677966101694915254237288135593220338983050847457627*6=7118644067796610169491525423728813559322033898305084745762

 ColumnMultiEx(lastDigte:7,times:7)
 1014492753623188405797*7=7101449275362318840579

 ColumnMultiEx(lastDigte:7,times:8)
 0886075949367*8=7088607594936

 ColumnMultiEx(lastDigte:7,times:9)
 07865168539325842696629213483146067415730337*9=70786516853932584269662921348314606741573033

 ColumnMultiEx(lastDigte:8,times:1)
 8*1=8

 ColumnMultiEx(lastDigte:8,times:2)
 421052631578947368*2=842105263157894736

 ColumnMultiEx(lastDigte:8,times:3)
 2758620689655172413793103448*3=8275862068965517241379310344

 ColumnMultiEx(lastDigte:8,times:4)
 205128*4=820512

 ColumnMultiEx(lastDigte:8,times:5)
 163265306122448979591836734693877551020408*5=816326530612244897959183673469387755102040

 ColumnMultiEx(lastDigte:8,times:6)
 1355932203389830508474576271186440677966101694915254237288*6=8135593220338983050847457627118644067796610169491525423728

 ColumnMultiEx(lastDigte:8,times:7)
 1159420289855072463768*7=8115942028985507246376

 ColumnMultiEx(lastDigte:8,times:8)
 1012658227848*8=8101265822784

 ColumnMultiEx(lastDigte:8,times:9)
 08988764044943820224719101123595505617977528*9=80898876404494382022471910112359550561797752

 ColumnMultiEx(lastDigte:9,times:1)
 9*1=9

 ColumnMultiEx(lastDigte:9,times:2)
 473684210526315789*2=947368421052631578

 ColumnMultiEx(lastDigte:9,times:3)
 3103448275862068965517241379*3=9310344827586206896551724137

 ColumnMultiEx(lastDigte:9,times:4)
 230769*4=923076

 ColumnMultiEx(lastDigte:9,times:5)
 183673469387755102040816326530612244897959*5=918367346938775510204081632653061224489795

 ColumnMultiEx(lastDigte:9,times:6)
 1525423728813559322033898305084745762711864406779661016949*6=9152542372881355932203389830508474576271186440677966101694

 ColumnMultiEx(lastDigte:9,times:7)
 1304347826086956521739*7=9130434782608695652173

 ColumnMultiEx(lastDigte:9,times:8)
 1139240506329*8=9113924050632

 ColumnMultiEx(lastDigte:9,times:9)
 10112359550561797752808988764044943820224719*9=91011235955056179775280898876404494382022471

 Structure(lastDigte:1,times:1)
  1/9 -> 0.11111111111111110494 -> 1*1=1

 Structure(lastDigte:1,times:2)
  1/19 -> 0.05263157894736841813

 Structure(lastDigte:1,times:3)
  1/29 -> 0.03448275862068965469

 Structure(lastDigte:1,times:4)
  1/39 -> 0.02564102564102564014 -> 25641*4=102564

 Structure(lastDigte:1,times:5)
  1/49 -> 0.02040816326530612082

 Structure(lastDigte:1,times:6)
  1/59 -> 0.01694915254237288130

 Structure(lastDigte:1,times:7)
  1/69 -> 0.01449275362318840597

 Structure(lastDigte:1,times:8)
  1/79 -> 0.01265822784810126563 -> 126582278481*8=1012658227848

 Structure(lastDigte:1,times:9)
  1/89 -> 0.01123595505617977497

 Structure(lastDigte:2,times:1)
  2/9 -> 0.22222222222222220989 -> 2*1=2

 Structure(lastDigte:2,times:2)
  2/19 -> 0.10526315789473683626

 Structure(lastDigte:2,times:3)
  2/29 -> 0.06896551724137930939

 Structure(lastDigte:2,times:4)
  2/39 -> 0.05128205128205128027 -> 51282*4=205128

 Structure(lastDigte:2,times:5)
  2/49 -> 0.04081632653061224164

 Structure(lastDigte:2,times:6)
  2/59 -> 0.03389830508474576259

 Structure(lastDigte:2,times:7)
  2/69 -> 0.02898550724637681195

 Structure(lastDigte:2,times:8)
  2/79 -> 0.02531645569620253125 -> 253164556962*8=2025316455696

 Structure(lastDigte:2,times:9)
  2/89 -> 0.02247191011235954994

 Structure(lastDigte:3,times:1)
  3/9 -> 0.33333333333333331483 -> 3*1=3

 Structure(lastDigte:3,times:2)
  3/19 -> 0.15789473684210525439

 Structure(lastDigte:3,times:3)
  3/29 -> 0.10344827586206896408

 Structure(lastDigte:3,times:4)
  3/39 -> 0.07692307692307692735 -> 76923*4=307692

 Structure(lastDigte:3,times:5)
  3/49 -> 0.06122448979591836593

 Structure(lastDigte:3,times:6)
  3/59 -> 0.05084745762711864736

 Structure(lastDigte:3,times:7)
  3/69 -> 0.04347826086956521618

 Structure(lastDigte:3,times:8)
  3/79 -> 0.03797468354430379861 -> 379746835443*8=3037974683544

 Structure(lastDigte:3,times:9)
  3/89 -> 0.03370786516853932491

 Structure(lastDigte:4,times:1)
  4/9 -> 0.44444444444444441977 -> 4*1=4

 Structure(lastDigte:4,times:2)
  4/19 -> 0.21052631578947367252

 Structure(lastDigte:4,times:3)
  4/29 -> 0.13793103448275861878

 Structure(lastDigte:4,times:4)
  4/39 -> 0.10256410256410256054 -> 102564*4=410256

 Structure(lastDigte:4,times:5)
  4/49 -> 0.08163265306122448328

 Structure(lastDigte:4,times:6)
  4/59 -> 0.06779661016949152519

 Structure(lastDigte:4,times:7)
  4/69 -> 0.05797101449275362389

 Structure(lastDigte:4,times:8)
  4/79 -> 0.05063291139240506250 -> 506329113924*8=4050632911392

 Structure(lastDigte:4,times:9)
  4/89 -> 0.04494382022471909988

 Structure(lastDigte:5,times:1)
  5/9 -> 0.55555555555555558023 -> 5*1=5

 Structure(lastDigte:5,times:2)
  5/19 -> 0.26315789473684209065

 Structure(lastDigte:5,times:3)
  5/29 -> 0.17241379310344828735

 Structure(lastDigte:5,times:4)
  5/39 -> 0.12820512820512819374 -> 128205*4=512820

 Structure(lastDigte:5,times:5)
  5/49 -> 0.10204081632653061451

 Structure(lastDigte:5,times:6)
  5/59 -> 0.08474576271186440302

 Structure(lastDigte:5,times:7)
  5/69 -> 0.07246376811594203160

 Structure(lastDigte:5,times:8)
  5/79 -> 0.06329113924050633333 -> 632911392405*8=5063291139240

 Structure(lastDigte:5,times:9)
  5/89 -> 0.05617977528089887485

 Structure(lastDigte:6,times:1)
  6/9 -> 0.66666666666666662966 -> 6*1=6

 Structure(lastDigte:6,times:2)
  6/19 -> 0.31578947368421050879

 Structure(lastDigte:6,times:3)
  6/29 -> 0.20689655172413792816

 Structure(lastDigte:6,times:4)
  6/39 -> 0.15384615384615385469 -> 153846*4=615384

 Structure(lastDigte:6,times:5)
  6/49 -> 0.12244897959183673186

 Structure(lastDigte:6,times:6)
  6/59 -> 0.10169491525423729472

 Structure(lastDigte:6,times:7)
  6/69 -> 0.08695652173913043237

 Structure(lastDigte:6,times:8)
  6/79 -> 0.07594936708860759722 -> 759493670886*8=6075949367088

 Structure(lastDigte:6,times:9)
  6/89 -> 0.06741573033707864981

 Structure(lastDigte:7,times:1)
  7/9 -> 0.77777777777777779011 -> 7*1=7

 Structure(lastDigte:7,times:2)
  7/19 -> 0.36842105263157892692

 Structure(lastDigte:7,times:3)
  7/29 -> 0.24137931034482759673

 Structure(lastDigte:7,times:4)
  7/39 -> 0.17948717948717948789 -> 179487*4=717948

 Structure(lastDigte:7,times:5)
  7/49 -> 0.14285714285714284921

 Structure(lastDigte:7,times:6)
  7/59 -> 0.11864406779661017255

 Structure(lastDigte:7,times:7)
  7/69 -> 0.10144927536231884702

 Structure(lastDigte:7,times:8)
  7/79 -> 0.08860759493670886111 -> 886075949367*8=7088607594936

 Structure(lastDigte:7,times:9)
  7/89 -> 0.07865168539325842478

 Structure(lastDigte:8,times:1)
  8/9 -> 0.88888888888888883955 -> 8*1=8

 Structure(lastDigte:8,times:2)
  8/19 -> 0.42105263157894734505

 Structure(lastDigte:8,times:3)
  8/29 -> 0.27586206896551723755

 Structure(lastDigte:8,times:4)
  8/39 -> 0.20512820512820512109 -> 205128*4=820512

 Structure(lastDigte:8,times:5)
  8/49 -> 0.16326530612244896656

 Structure(lastDigte:8,times:6)
  8/59 -> 0.13559322033898305038

 Structure(lastDigte:8,times:7)
  8/69 -> 0.11594202898550724778

 Structure(lastDigte:8,times:8)
  8/79 -> 0.10126582278481012500 -> 1012658227848*8=8101265822784

 Structure(lastDigte:8,times:9)
  8/89 -> 0.08988764044943819975

 Structure(lastDigte:9,times:1)
  9/9 -> 1.00000000000000000000 -> 9*1=9

 Structure(lastDigte:9,times:2)
  9/19 -> 0.47368421052631576318

 Structure(lastDigte:9,times:3)
  9/29 -> 0.31034482758620690612

 Structure(lastDigte:9,times:4)
  9/39 -> 0.23076923076923078204 -> 230769*4=923076

 Structure(lastDigte:9,times:5)
  9/49 -> 0.18367346938775511167

 Structure(lastDigte:9,times:6)
  9/59 -> 0.15254237288135594208

 Structure(lastDigte:9,times:7)
  9/69 -> 0.13043478260869564855

 Structure(lastDigte:9,times:8)
  9/79 -> 0.11392405063291138889 -> 1139240506329*8=9113924050632

 Structure(lastDigte:9,times:9)
  9/89 -> 0.10112359550561797472Program ended with exit code: 0
 
 
 */

















评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值