ZJNU 1129 - The sum problem——中级

枚举区间可能的长度len,将m减去1~len构成的序列和后如果结果是len的倍数,则可以构成答案区间。

#include<stdio.h>
#include<math.h>
int main(){
    int n,m,len,b;
    while(scanf("%d%d",&n,&m)!=EOF&&(n||m)){
        for(len=sqrt(m*2);len;len--){
                b=m-(len*len+len)/2;
                if(b%len==0)
                    printf("[%d,%d]\n",(b/len)+1,(b/len)+len);
        }
        putchar('\n');
    }
    return 0;
}

 

posted @ 2020-01-19 12:45  StelaYuri  阅读(155)  评论(0)    收藏  举报