In number theory, a Leyland number is a number of the form xy + yx, where x and y are integers greater than 1 and 1 <y <= x.
Given a positive integer N. The task is to print first N Leyland number in ascending order. The first few Leyland numbers are 8, 17, 32, 54, 57, 100, …
Examples:
Input : N = 1 Output : 8 22 + 22 = 4 + 4 = 8. Input : N = 6 Output : 100
The idea to run two loop, one for x and other for y. The outer loop start with 2 to n and for each iteration of outer loop, run inner loop start from 2 t x. And store xy + yx in an array. After calculating all the value sort them and print first n numbers.
Below is the implementation of this approach:
C++
// CPP program to print first N Leyland Numbers. #include <bits/stdc++.h> #define MAX 100 using namespace std; // Print first n Leyland Number. void leyland( int n) { vector< int > ans; // Outer loop for x from 2 to n. for ( int x = 2; x <= n; x++) { // Inner loop for y from 2 to x. for ( int y = 2; y <= x; y++) { // Calculating x^y + y^x int temp = pow (x, y) + pow (y, x); ans.push_back(temp); } } // Sorting the all Leyland Number. sort(ans.begin(), ans.end()); // Printing first n Leyland number. for ( int i = 0; i < n; i++) cout << ans[i] << " " ; } // Driven Program int main() { int n = 6; leyland(n); return 0; } |
Java
// Java program to print first N // Leyland Numbers. import java.util.*; import java.lang.*; public class GFG{ private static final int MAX = 0 ; // Print first n Leyland Number. public static void leyland( int n) { List<Integer> ans = new ArrayList<Integer>(); // Outer loop for x from 2 to n. for ( int x = 2 ; x <= n; x++) { // Inner loop for y from 2 to x. for ( int y = 2 ; y <= x; y++) { // Calculating x^y + y^x int temp = ( int )Math.pow(x, y) + ( int )Math.pow(y, x); ans.add(temp); } } // Sorting the all Leyland Number. Collections.sort(ans); // Printing first n Leyland number. for ( int i = 0 ; i < n; i++) System.out.print(ans.get(i) + " " ); } // Driven Program public static void main(String args[]) { int n = 6 ; leyland(n); } } // This code is contributed by Sachin Bisht |
Python3
# Python3 program to print first N # Leyland Numbers. import math # Print first n Leyland Number. def leyland(n): ans = [] x = 2 y = 2 # Outer loop for x from 2 to n. while x < = n : # Inner loop for y from 2 to x. y = 2 while y < = x : # Calculating x^y + y^x temp = pow (x, y) + pow (y, x) ans.append(temp); y = y + 1 x = x + 1 # Sorting the all Leyland Number. ans.sort(); i = 0 # Printing first n Leyland number. while i < n : print (ans[i], end = " " ) i = i + 1 # Driver Code n = 6 leyland(n) # This code is contributed by rishabh_jain |
C#
// C# program to print // first N Leyland Numbers. using System; using System.Collections; class GFG { // Print first n // Leyland Number. public static void leyland( int n) { ArrayList ans = new ArrayList(); // Outer loop for x // from 2 to n. for ( int x = 2; x <= n; x++) { // Inner loop for // y from 2 to x. for ( int y = 2; y <= x; y++) { // Calculating x^y + y^x int temp = ( int )Math.Pow(x, y) + ( int )Math.Pow(y, x); ans.Add(temp); } } // Sorting the all // Leyland Number. ans.Sort(); // Printing first // n Leyland number. for ( int i = 0 ; i < n; i++) { Console.Write(ans[i] + " " ); } } // Driver Code public static void Main() { int n = 6; leyland(n); } } // This code is contributed by Sam007 |
PHP
<?php // PHP program to print // first N Leyland Numbers. $MAX = 100; // Print first n // Leyland Number. function leyland( $n ) { $ans ; $index = 0; // Outer loop for // x from 2 to n. for ( $x = 2; $x <= $n ; $x ++) { // Inner loop for // y from 2 to x. for ( $y = 2; $y <= $x ; $y ++) { // Calculating x^y + y^x $temp = pow( $x , $y ) + pow( $y , $x ); $ans [ $index ] = $temp ; $index ++; } } // Sorting the all // Leyland Number. sort( $ans ); // Printing first // n Leyland number. for ( $i = 0; $i < $n ; $i ++) echo $ans [ $i ]. " " ; } // Driver Code $n = 6; leyland( $n ); // This code is contributed // by mits ?> |
Javascript
<script> // Javascript program to print // first N Leyland Numbers. let MAX = 100; // Print first n // Leyland Number. function leyland(n) { let ans = []; let index = 0; // Outer loop for // x from 2 to n. for (let x = 2; x <= n; x++) { // Inner loop for // y from 2 to x. for (let y = 2; y <= x; y++) { // Calculating x^y + y^x let temp = Math.pow(x, y) + Math.pow(y, x); ans[index] = temp; index++; } } // Sorting the all // Leyland Number. console.log(ans) ans = ans.sort((a, b)=>a-b); console.log(ans) // Printing first // n Leyland number. for (let i = 0; i < n; i++) document.write(ans[i] + " " ); } // Driver Code let n = 6; leyland(n); // This code is contributed // by _saurabh_jaiswal </script> |
Output:
8 17 32 54 57 100
Time complexity: O(n*nlogn+nlogn)
Auxiliary space: O(n)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!