Back Source

In a unique number every digit is distict. Enter a range of m to n and search for unique numbers.

import java.util.Scanner;

class Unique {

    public static void main(String[] args) {
        Unique a = new Unique();
        a.input();
    }

    void input() {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter Range m, n: ");
        int m = sc.nextInt(), n = sc.nextInt();
        if (m > n) {
            System.out.println("Invalid Range");
            System.exit(0);
        }
        int cn = 0;
        System.out.print("Unique numbers are:- ");
        for (int x = m; x <= n; x++)
            if (is_unique(x)) {
                System.out.print(x + ", ");
                cn++;
            }
        System.out.println("\nFreequency: " + cn);
        sc.close();
    }

    boolean is_unique(int n) {
        int cn[] = new int[10];// storing freequency of digits of a number
        while (n != 0) {
            if (++cn[n % 10] == 2)
                return false;
            n /= 10;
        }
        return true;
    }
}