x[(a=0)] = y[(b=B=0)] = z[(c=C=0)] = 1;
while (C<n)
{
int X = x[a] * 2;
int Y = y[b] * 3;
int Z = z[c] * 5;
if ((X < Y) && (X < Z))
x[++a] = y[++B] = z[++C] = X;
else if (Y < Z)
y[++b,++B] = z[++C] = Y;
else
z[++c,++C] = Z;
}
输出:
1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 36 40 45 48 50 54 60 64 72 75 8
0 81 90 96 100 108 120 125 128 135 144 150 160 162 180 192 200 216 225 240 243 2
50 256 270 288 300 320 324 360 375 384 400 405 432 450 480 486 500 512 540 576 6
00 625 640 648 675 720 729 750 768 800 810 864 900 960 972 1000 1024 1080 1125 1
152 1200 1215 1250 1280 1296 1350 1440 1458 1500 1536 1600 1620 1728 1800 1875 1
920 1944 2000 2025 2048 2160 2187 2250 2304 2400 2430 2500 2560 2592 2700 2880 2
916 3000 3072 3125 3200 3240 3375 3456 3600 3645 3750 3840 3888 4000 4050 4096 4
320 4374 4500 4608 4800 4860 5000 5120 5184 5400 5625 5760 5832 6000 6075 6144 6
250 6400 6480 6561 6750 6912 7200 7290 7500 7680 7776 8000 8100 8192 8640 8748 9
000 9216 9375 9600 9720 10000 10125 10240 10368 10800 10935 11250 11520 11664 12
000 12150 12288 12500 12800 12960 13122 13500 13824 14400 14580 15000 15360 1555
2 15625 16000 16200 16384 16875 17280 17496 18000 18225 18432 18750 19200 19440
19683 20000 20250 20480 20736 21600 21870 22500 23040 23328 24000 24300 24576 25
000 25600 25920 26244 27000 27648 28125 28800 29160 30000 30375 30720 31104 3125
0 32000 32400 32768 32805 33750 34560 34992 36000 36450 36864 37500 38400 38880
39366 40000 40500 40960 41472 43200 43740 45000 46080 46656 46875 48000 48600 49
152 50000 50625 51200 51840 52488 54000 54675 55296 56250 57600 58320 59049 6000
0 60750 61440 62208 62500 64000 64800 65536 65610 67500 69120 69984 72000 72900
73728 75000 76800 77760 78125 78732 80000 81000 81920 82944 84375更多精彩文章及讨论,请光临枫下论坛 rolia.net