必ず7で割り切れます。
たとえば975,318,642を二つ並べた975,318,642,975,318,642を7で割ってみて下さい。ぴったり139,331,234,710,759,806になります。
種明かしをすると、「適当な九桁の数を二つ並べた数」は、必ず1,000,000,001の倍数のがその理由です。ところが、1,000,000,001を因数分解すると71111131191525791。ということは7でも必ず割り切れるわけです。
好きな3桁の数字を適当に考えてみましょう:ぁゃιぃ(*゚ー゚)NEWS 2ndこのようにしてできた数字は必ず7で割り切れるのだ
それでは、このような数が他にないか探してみることにしましょう。とりあえず10桁まで。
7で割り切れるのは、3桁と9桁の場合のみであることがわかります。ついでに、1,000,000,001は1,001の倍数であることもわかります。
余談ですが、素因数分解するためのJavaScriptのプロトタイプを署名の後に。32bitまでの整数しか対応していない、エラトステネスのふるいを使った素朴な奴ですが。
倍数って、本当に面白いですね。キーボードが壊れてしまうほど。
Dan the Number Cruncher
(function(){
var primes = [2];
var is_prime = function(n){
for (var i = 0; i < primes.length; i++){
var d = primes[i];
if (d * d > n) break;
if (n % d == 0) return false;
}
primes.push(n);
return true;
};
(function(n, max){
for(;primes[primes.length-1] < max; n += 2) is_prime(n);
})(3, 0x10000);
Factored = function(n){
if (n.constructor === Number){
if (n <= 1) {
this[n] = 1;
}else{
for (var i = 0, l = primes.length; i < l; i++){
var p = primes[i];
if (n % p) continue;
this[p] = 0;
while (n % p === 0){
this[p]++;
n /= p;
}
if (n === 1) break;
}
if (n !== 1) this[n] = 1;
}
}
else if (typeof(n) === 'object'){
for (var p in n) this[p] = n[p];
}
};
Factored.prototype = {
toString:function(){
var ret = [];
for (var p in this){
if (! this.hasOwnProperty(p)) continue;
ret.push(p + ':' + this[p]);
}
return '(new Factored({' + ret.join(',') + '})';
},
toDOM:function(){
var d = document;
var ret = d.createElement('span');
ret.className = 'factored';
for (var p in this){
if (! this.hasOwnProperty(p)) continue;
ret.appendChild(d.createTextNode(p));
var sup = d.createElement('sup');
sup.appendChild(d.createTextNode(this[p]));
ret.appendChild(sup);
}
//ret.innerHTML = this.toHTML();
return ret;
},
toHTML:function(){
return this.toDOM().innerHTML;
},
valueOf:function(){
var ret = 1;
for (var p in this){
if (! this.hasOwnProperty(p)) continue;
ret *= Math.pow(parseInt(p), parseInt(this[p]));
}
return ret;
}
}
})();
追記:
なんと本職の数学者からつっこみが。
Twitter / Iwao KIMURA: @dankogai n=3*(2*k+1), k=0 ...@dankogai n=3*(2*k+1), k=0,1,2,... に対して,10^n+1 は7で割り切れます.ついでに,(10^n+1)/7と,1/7の小数展開を見比べると面白いです.
これは、10でなくても、b^3 + 1 が 7 で割り切れるbなら全部なりたつことは、以下の筆算を見ると推察できます。これは b^(6 + 3) + 1 を b^3 + 1 で割っている様子です。
1 0 0 -1 0 0 1
------------------------------
1 0 0 1 ) 1 0 0 0 0 0 0 0 0 1
1 0 0 1
-------------------
-1 0 0 0
-1 0 0 -1
--------------------
1 0 0 1
1 0 0 1
----------
0
それでは10の他に、b^3 + 1 が7で割り切れるbにはどんなものがあるでしょうか?読者の宿題とさせていただきます:)
必ず1,000,000,001の倍数「になる」のがその理由です。
と入れたほうがいいと思います。