#include <stdio.h> #include <string.h> #include <time.h> double start,finish; int check(int m, int k) { int remainder = 0; int position = 0; int count = 0; for(count = 2 * k; count != k; count--) { remainder = m % count; position = (remainder + position + 1) % count; if(position <= k) { return 0; } } return 1; } int main(int argc, char *argv[]) { int m = 0; int k = 0; scanf("%d", &k); m = k + 1; while(1) { if(check(m, k)) { break; } m++; } printf("%d", m); return 0; }
原文:http://www.cnblogs.com/reasontom/p/3528737.html