算額あれこれ

算額問題をコンピュータで解きます

数学の問題を R で解く(その2)

10 桁の数字 n(すなわち 1000000000 ≦ n ≦ 9999999999) において,n^n の末尾の 3 桁が 777 になるのは,何個あるか

1 桁の数字でそのようなものは,0 個
2 桁の数字でそのようなものは,0 個
3 桁の数字でそのようなものは,1 個
4 桁の数字でそのようなものは,9 個
  :

f = function(x) {
    y = 1
    for (i in 1:x) {
        y = (y*x) %% 1000
    }
    y == 777
}
sum(sapply(0:9, f)) # 0
sum(sapply(10:99, f)) # 0
sum(sapply(100:999, f)) # 1
sum(sapply(1000:9999, f)) # 9
# sum(sapply(1000000000:9999999999, f)) # oh! no!

 

10 桁の数字でそのようなものは,90000000 個