|
|
back to boardVERY easy :) A - first divider of K, which is more or equal than 3 (A>=3) We need write A-1. AC - 0.578 and 134 KB Edited by author 27.03.2010 14:34 Re: VERY easy :) Posted by pkl 18 Aug 2011 03:04 I made the same, but WA on test 11. What's the matter? I see a solution in another topic, there used I64. Oh, don't tell me to use I64. 10^8 is involved to int. Why does not it work? <code> #include <stdio.h> int K; int L; int main() { scanf("%d", &K); L = 2; while (K%(L+1) != 0) { if ((L+1)*(L+1) > K) { printf("%d\n", K-1); return 0; } L++; } printf("%d\n", L); return 0; } </code> Edited by author 18.08.2011 03:22 Re: VERY easy :) Posted by pkl 18 Aug 2011 03:55 At last. I undestood. Expression "if ((L+1)*(L+1) > K)" not correct, because we skip 2. Since for K=8, we return 7, when the correct answer is 3. Edited by author 18.08.2011 03:56 Re: VERY easy :) Posted by Frankie 27 Nov 2011 17:42 > I made the same No I see u didn't :) The actual solution is 5 lines, 4 of which are declarations and i/o Edited by author 27.11.2011 17:43 |
|
|