およびSの正の整数シーケンス


import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (true) {
            int N = scan.nextInt();
            int M = scan.nextInt();
            if (N == 0 && M == 0) {
                break;
            }
            int small = 1, big = 1;
            int curSum = small;
            while (big <= M) {
                if (curSum == M) {
                    System.out.println("[" + small + "," + big + "]");
                }
                while (curSum > M) {
                    curSum -= small;
                    small++;
                    if (curSum == M) {
                        System.out.println("[" + small + "," + big + "]");
                    }
                }
                big++;
                curSum += big;
            }
        }
    }
}
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (true) {
            int N = scan.nextInt();
            int M = scan.nextInt();
            if (N == 0 && M == 0) {
                break;
            }

            int n = (int)Math.sqrt(M*2);    //    n    
            while (n > 0) {
                int a0 = (M-(n-1)*n/2)/n;
                if (a0*n + (n-1)*n/2 == M) {    //  0 n-1,    1 n
                    System.out.println("[" + a0 + "," + (a0+n-1) + "]");
                }
                n--;
            }
            System.out.println();
        }
        scan.close();
    }
}