首页 > 代码库 > poj 2368 巴什博奕变形

poj 2368 巴什博奕变形

http://poj.org/problem?id=2368


巴什博奕看这里http://blog.csdn.net/u011026968/article/details/38434777


这题比较无聊的地方是,卡时间,O(n)算法会超时

#include<iostream>
#include<cstdlib>
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1010];
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        bool flag=false;
        int l=0;
        for(int i=1;i*i<=n;i++)
        {
            if(n%i==0)
            {
                a[l++]=i;
                a[l++]=n/i;
            }
        }
        sort(a,a+l);
        for(int i=0;i<l;i++)
        {
            if(a[i]>2)
            {
                cout<<(a[i]-1)<<endl;
                flag=true;
                break;
            }
        }
        if(!flag)
        puts("0");
    }
}