Find Landau's function for a given number N - GeeksforGeeks

Given an integer N, the task is to find the Landau’s Function of the number N.

In number theory, The_ Landau’s function__ finds the largest LCM among all partitions of the given number N._

For Example:_ If N = 4, then possible partitions are:_

1. {1, 1, 1, 1}, LCM = 1

2. {1, 1, 2}, LCM = 2

3. {2, 2}, LCM = 2

4. {1, 3}, LCM = 3

Among the above partitions, the partitions whose LCM is maximum is {1, 3} as LCM = 3.

Examples:

Input:_ N = 4_

Output:_ 4_

Explanation:

Partitions of 4 are [1, 1, 1, 1], [1, 1, 2], [2, 2], [1, 3], [4] among which maximum LCM is of the last partition 4 whose LCM is also 4.

Input:_ N = 7_

Output:_ 12_

Explanation:

For N = 7 the maximum LCM is 12.

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: The idea is to use Recursion to generate all possible partitions for the given number N and find the maximum value of LCM among all the partitions. Consider every integer from 1 to N such that the sum N can be reduced by this number at each recursive call and if at any recursive call N reduces to zero then find the LCM of the value stored in the vector. Below are the steps for recursion:

  1. Get the number N whose sum has to be broken into two or more positive integers.
  2. Recursively iterate from value 1 to N as index i:
  • Base Case: If the value called recursively is 0, then find the LCM of the value stored in the current vector as this is the one of the way to broke N into two or more positive integers.
if (n == 0)
    findLCM(arr);
  • Recursive Call: If the base case is not met, then Recursively iterate from [i, N – i]. Push the current element j into vector(say arr) and recursively iterate for the next index and after the this recursion ends then pop the element j inserted previously:
for j in range[i, N]:
    arr.push_back(j);
    recursive_function(arr, j + 1, N - j);
    arr.pop_back(j);
  1. After all the recursive call, print the maximum of all the LCM calculated.

Below is the implementation of the above approach:

  • C++
// C++ program for the above approach 
#include <bits/stdc++.h> 
using namespace std; 

// To store Landau's function of the number 
int Landau = INT_MIN; 

// Function to return gcd of 2 numbers 
int gcd(int a, int b) 
{ 

    if (a == 0) 

        return b; 

    return gcd(b % a, a); 
} 

// Function to return LCM of two numbers 
int lcm(int a, int b) 
{ 
    return (a * b) / gcd(a, b); 
} 

// Function to find max lcm value 
// among all representations of n 
void findLCM(vector<int>& arr) 
{ 
    int nth_lcm = arr[0]; 

    for (int i = 1; i < arr.size(); i++) 

        nth_lcm = lcm(nth_lcm, arr[i]); 

    // Calculate Landau's value 
    Landau = max(Landau, nth_lcm); 
} 

// Recursive function to find different 
// ways in which n can be written as 
// sum of atleast one positive integers 
void findWays(vector<int>& arr, int i, int n) 
{ 
    // Check if sum becomes n, 
    // consider this representation 
    if (n == 0) 
        findLCM(arr); 

    // Start from previous element 
    // in the representation till n 
    for (int j = i; j <= n; j++) { 

        // Include current element 
        // from representation 
        arr.push_back(j); 

        // Call function again 
        // with reduced sum 
        findWays(arr, j, n - j); 

        // Backtrack - remove current 
        // element from representation 
        arr.pop_back(); 
    } 
} 

// Function to find the Landau's function 
void Landau_function(int n) 
{ 
    vector<int> arr; 

    // Using recurrence find different 
    // ways in which n can be written 
    // as a sum of atleast one +ve integers 
    findWays(arr, 1, n); 

    // Print the result 
    cout << Landau; 
} 

// Driver Code 
int main() 
{ 
    // Given N 
    int N = 4; 

    // Function Call 
    Landau_function(N); 
    return 0; 
} 

#mathematical #recursion #lcm #function

What is GEEK

Buddha Community

Find Landau's function for a given number N - GeeksforGeeks

Find Landau's function for a given number N - GeeksforGeeks

Given an integer N, the task is to find the Landau’s Function of the number N.

In number theory, The_ Landau’s function__ finds the largest LCM among all partitions of the given number N._

For Example:_ If N = 4, then possible partitions are:_

1. {1, 1, 1, 1}, LCM = 1

2. {1, 1, 2}, LCM = 2

3. {2, 2}, LCM = 2

4. {1, 3}, LCM = 3

Among the above partitions, the partitions whose LCM is maximum is {1, 3} as LCM = 3.

Examples:

Input:_ N = 4_

Output:_ 4_

Explanation:

Partitions of 4 are [1, 1, 1, 1], [1, 1, 2], [2, 2], [1, 3], [4] among which maximum LCM is of the last partition 4 whose LCM is also 4.

Input:_ N = 7_

Output:_ 12_

Explanation:

For N = 7 the maximum LCM is 12.

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: The idea is to use Recursion to generate all possible partitions for the given number N and find the maximum value of LCM among all the partitions. Consider every integer from 1 to N such that the sum N can be reduced by this number at each recursive call and if at any recursive call N reduces to zero then find the LCM of the value stored in the vector. Below are the steps for recursion:

  1. Get the number N whose sum has to be broken into two or more positive integers.
  2. Recursively iterate from value 1 to N as index i:
  • Base Case: If the value called recursively is 0, then find the LCM of the value stored in the current vector as this is the one of the way to broke N into two or more positive integers.
if (n == 0)
    findLCM(arr);
  • Recursive Call: If the base case is not met, then Recursively iterate from [i, N – i]. Push the current element j into vector(say arr) and recursively iterate for the next index and after the this recursion ends then pop the element j inserted previously:
for j in range[i, N]:
    arr.push_back(j);
    recursive_function(arr, j + 1, N - j);
    arr.pop_back(j);
  1. After all the recursive call, print the maximum of all the LCM calculated.

Below is the implementation of the above approach:

  • C++
// C++ program for the above approach 
#include <bits/stdc++.h> 
using namespace std; 

// To store Landau's function of the number 
int Landau = INT_MIN; 

// Function to return gcd of 2 numbers 
int gcd(int a, int b) 
{ 

    if (a == 0) 

        return b; 

    return gcd(b % a, a); 
} 

// Function to return LCM of two numbers 
int lcm(int a, int b) 
{ 
    return (a * b) / gcd(a, b); 
} 

// Function to find max lcm value 
// among all representations of n 
void findLCM(vector<int>& arr) 
{ 
    int nth_lcm = arr[0]; 

    for (int i = 1; i < arr.size(); i++) 

        nth_lcm = lcm(nth_lcm, arr[i]); 

    // Calculate Landau's value 
    Landau = max(Landau, nth_lcm); 
} 

// Recursive function to find different 
// ways in which n can be written as 
// sum of atleast one positive integers 
void findWays(vector<int>& arr, int i, int n) 
{ 
    // Check if sum becomes n, 
    // consider this representation 
    if (n == 0) 
        findLCM(arr); 

    // Start from previous element 
    // in the representation till n 
    for (int j = i; j <= n; j++) { 

        // Include current element 
        // from representation 
        arr.push_back(j); 

        // Call function again 
        // with reduced sum 
        findWays(arr, j, n - j); 

        // Backtrack - remove current 
        // element from representation 
        arr.pop_back(); 
    } 
} 

// Function to find the Landau's function 
void Landau_function(int n) 
{ 
    vector<int> arr; 

    // Using recurrence find different 
    // ways in which n can be written 
    // as a sum of atleast one +ve integers 
    findWays(arr, 1, n); 

    // Print the result 
    cout << Landau; 
} 

// Driver Code 
int main() 
{ 
    // Given N 
    int N = 4; 

    // Function Call 
    Landau_function(N); 
    return 0; 
} 

#mathematical #recursion #lcm #function

Vincent Lab

Vincent Lab

1605017502

The Difference Between Regular Functions and Arrow Functions in JavaScript

Other then the syntactical differences. The main difference is the way the this keyword behaves? In an arrow function, the this keyword remains the same throughout the life-cycle of the function and is always bound to the value of this in the closest non-arrow parent function. Arrow functions can never be constructor functions so they can never be invoked with the new keyword. And they can never have duplicate named parameters like a regular function not using strict mode.

Here are a few code examples to show you some of the differences
this.name = "Bob";

const person = {
name: “Jon”,

<span style="color: #008000">// Regular function</span>
func1: <span style="color: #0000ff">function</span> () {
    console.log(<span style="color: #0000ff">this</span>);
},

<span style="color: #008000">// Arrow function</span>
func2: () =&gt; {
    console.log(<span style="color: #0000ff">this</span>);
}

}

person.func1(); // Call the Regular function
// Output: {name:“Jon”, func1:[Function: func1], func2:[Function: func2]}

person.func2(); // Call the Arrow function
// Output: {name:“Bob”}

The new keyword with an arrow function
const person = (name) => console.log("Your name is " + name);
const bob = new person("Bob");
// Uncaught TypeError: person is not a constructor

If you want to see a visual presentation on the differences, then you can see the video below:

#arrow functions #javascript #regular functions #arrow functions vs normal functions #difference between functions and arrow functions

Perfect Number Program In Python: How to check if a number is perfect or not?

Introduction

A number is said to be the perfect number if the sum of its proper divisors (not including the number itself) is equal to the number.

To get a better idea let’s consider an example, proper divisors of 6 are 1, 2, 3. Now the sum of these divisors is equal to 6 (1+2+3=6), so 6 is said to be a perfect number. Whereas if we consider another number like 12, proper divisors of 12 are 1, 2, 3, 4, 6. Now the sum of these divisors is not equal to 12, so 12 is not a perfect number.

Programming in Python is relatively simpler and more fun when compared to other languages because of its simpler syntax, good readability. Now that we are clear with the concept of perfect number let’s write a python program to check if a number is a perfect number or not. Let’s build a python code for checking if the given user input is a perfect number or not and explore the fun in coding with python.

#data science #how to check if a number is perfect #perfect number #perfect number in python #perfect number program in python #python

Ray  Patel

Ray Patel

1619607900

Perfect Number Program In Python: How to check if a number is perfect or not?

Introduction

A number is said to be the perfect number if the sum of its proper divisors (not including the number itself) is equal to the number.

To get a better idea let’s consider an example, proper divisors of 6 are 1, 2, 3. Now the sum of these divisors is equal to 6 (1+2+3=6), so 6 is said to be a perfect number. Whereas if we consider another number like 12, proper divisors of 12 are 1, 2, 3, 4, 6. Now the sum of these divisors is not equal to 12, so 12 is not a perfect number.

Programming in Python is relatively simpler and more fun when compared to other languages because of its simpler syntax, good readability. Now that we are clear with the concept of perfect number let’s write a python program to check if a number is a perfect number or not. Let’s build a python code for checking if the given user input is a perfect number or not and explore the fun in coding with python.

#data science #how to check if a number is perfect #perfect number #perfect number in python #perfect number program in python #python

Tia  Gottlieb

Tia Gottlieb

1598258520

Activation Functions, Optimization Techniques, and Loss Functions

Activation Functions:

A significant piece of a neural system Activation function is numerical conditions that decide the yield of a neural system. The capacity is joined to every neuron in the system and decides if it ought to be initiated (“fired”) or not, founded on whether every neuron’s info is applicable for the model’s expectation. Initiation works likewise help standardize the yield of every neuron to a range somewhere in the range of 1 and 0 or between — 1 and 1.

Progressively, neural systems use linear and non-linear activation functions, which can enable the system to learn complex information, figure and adapt practically any capacity speaking to an inquiry, and give precise forecasts.

Linear Activation Functions:

**Step-Up: **Activation functions are dynamic units of neural systems. They figure the net yield of a neural node. In this, Heaviside step work is one of the most widely recognized initiation work in neural systems. The capacity produces paired yield. That is the motivation behind why it is additionally called paired advanced capacity.

The capacity produces 1 (or valid) when info passes edge limit though it produces 0 (or bogus) when information doesn’t pass edge. That is the reason, they are extremely valuable for paired order studies. Every rationale capacity can be actualized by neural systems. In this way, step work is usually utilized in crude neural systems without concealed layer or generally referred to name as single-layer perceptions.

#machine-learning #activation-functions #loss-function #optimization-algorithms #towards-data-science #function