//
// 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
*/
一个整数,个位是4,把4移动到首位,则变为原来4倍,那么这个数是?
于 2023-02-26 17:16:44 首次发布