suppose we want to find a number that starts with N and is divisible by 2520. I found this statement written 'note that there is such number somewhere between N0000 and N2519, inclusive'. Now my question is HOW???????
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 151 |
suppose we want to find a number that starts with N and is divisible by 2520. I found this statement written 'note that there is such number somewhere between N0000 and N2519, inclusive'. Now my question is HOW???????
Name |
---|
the answer is N*10000+2520-((N*10000)%2520)
if we consider N= 5040 then the answer is N itself(5040) coz it starts with N and is divisible by 2520. but this number is not between N0000 and N2519??????
If N is divisible by 2520, result is N0000; at any cases the above formula is right.
seems it will fail for N=2520 or multiples of 2520. 2520*10000 + 2520 — ( (2520*10000) % 2520) = 25202520 which is not between N0000 and N2519
to fix it: N*10000+ ( 2520-((N*10000)%2520) ) % 2520
or: N*10000 + 2519 — (N*10000-1)%2520 (assuming N>0)
is there any better way to think about modulos to avoid this kind of mistake?
actually i am also confused about this thing... according to me Kostroma is correct.. the answer is N*10000+2520-((N*10000)%2520) but then the result is failing for N=2520.. i am too much confused :O
You want to find a number X such that:
(N*10000 + X) mod 2520 = 0
, where X>=0 and X<=2519
From Kostroma's formula, X = 2520-((N*10000)%2520)
But Kostroma's formula will give you a value of X>=1 and X<=2520 which satisfies the equation. So there is a corner case when X=2520 and you need to fix it back to X=0. By taking modulo again (X=X%2520) or just doing a simple check if (X==2520) X=0; , you can fix it.
We want to find a consistent number, not the smallest one, so the set of remainders of [N0000,N2519] when dividing by 2520 will always be [0,2519] (in some order, not necessarily corresponding).
The formula of Kostroma is almost correct, except when N is divisible by 2520, it should be N0000 instead.
got it... thanks all