#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
const int N = 1000;
int postion[N];
int d = 0;
int longest = 0;
for ( int i = 2; i < N; ++i )
{
postion[1] = 0;
fill( postion+1, postion+i, 0 );
int remainder = 1;
for ( int pos = 1; ; ++pos )
{
remainder = remainder * 10 % i;
if ( remainder == 0 )
{
break;
}
if ( postion[remainder] != 0 )
{
int diff = pos - postion[remainder];
if ( diff > longest )
{
longest = diff;
d = i;
}
break;
}
postion[remainder] = pos;
}
}
cout << d << endl;
return 0;
}
http://projecteuler.net/problem=26 [Answer:983]
最新推荐文章于 2011-12-08 22:42:44 发布