UVA 1363(p338)----Joseph's Problem

来源:互联网 发布:经济增长数据 编辑:程序博客网 时间:2024/04/28 20:32
#include<iostream>#include<cstdio>using namespace std;int n,k;int  main(){    while(scanf("%d%d",&n,&k)==2&&n)    {        long long  ans=0;        int i=1;        while(i<=n)        {            long long cnt=n-i;            long long  p=k/i;            long  q=k%i;            if(p>0) cnt=min(cnt,q/p);            ans+=(cnt+1)*q-cnt*(cnt+1)/2*p;            //cout<<i<<"  "<<cnt<<" "<<p<<" "<<q<<" "<<cnt<<" "<<ans<<endl;            i+=cnt+1;        }        printf("%lld\n",ans);    }    return 0;}

0 0