' P '

whatever I will forget

mod系

C - Repsept

一応解説でもCにしてはムズイとなってたのでよしとする(?)ダメだけど、、

下記のmodの世界での規則系に気付けるかどうか。
f:id:mankozooyork:20200803032428p:plain
その世界でもn*10+7してmod kした値は単純にn%kした答えと同じになる
単純にn%kした場合、ループの最大回数を何にしたらいいかわからない。
でもmodの世界だと、modする数字より大きくなることはないため、ループ回数のリミットをkまでとすることができる。
上記に気づいて、下記が実装できればそれだけの問題だけど、まあ、思いつかんわな。。。

int ans = -1;
for(int i=1; i<=k; i++) {
    if(l % k == 0) {
        ans = i;
        break;
    }
    l = (l * 10 + 7) % k;
}
System.out.println(ans);