Lucas number
The Lucas numbers are a series of integers that form a sequence similar to the Fibonacci sequence. The sequence starts with 2 and 1, and each subsequent number is the sum of the previous two numbers. In this article, we will explore how to generate the first 'N' Lucas numbers and provide a C code implementation to print them.
Problem Statement
Given an integer 'N', the task is to find and print the first 'N' Lucas numbers.
Example
Let's take 'N' as 10. The first 10 Lucas numbers are: 2, 1, 3, 4, 7, 11, 18, 29, 47, 76.
Pseudocode and Algorithm
// Function to generate and print the first 'N' Lucas numbers
function lucas_numbers(N)
// Initialize variables for Lucas numbers
a <- 2
b <- 1
// Print initial message
print "N initial Lucas numbers are: "
// Loop to generate 'N' Lucas numbers
for i from 1 to N do
// Print the current Lucas number 'a'
print a
// Calculate the next Lucas number 'c' by adding 'a' and 'b'
c <- a + b
// Update 'a' to the value of 'b'
a <- b
// Update 'b' to the value of 'c'
b <- c
// End of loop
end for
// End of function
end function
To generate the first 'N' Lucas numbers, we will use a simple iterative approach. We will initialize two variables 'a' and 'b' with the first two Lucas numbers, which are 2 and 1. Then, we will loop 'N' times, printing the current value of 'a' in each iteration and updating 'a' and 'b' to the next Lucas number in the sequence.
- Start with 'N', the number of Lucas numbers to be generated, and set 'a' to 2 and 'b' to 1.
- Print "N initial Lucas numbers are: ".
- Loop from 0 to N-1: a. Print the value of 'a'. b. Calculate the next Lucas number, 'c', by adding 'a' and 'b'. c. Update 'a' to the value of 'b'. d. Update 'b' to the value of 'c'.
- End of loop.
Code Solution
Here given code implementation process.
//C Program
//Print lucas numbers list
#include <stdio.h>
//function which are display initial N lucas number
void lucas_no(int n)
{
//Variable which are control execution
//set initial values
int a = 2;
int b = 1;
int c = 0;
printf("\n%d initial lucas number is \n",n);
//loop which are printing N lucas numbers
for (int i = 0; i < n; i++)
{
printf("%d ",a );
c = a + b;
//next lucas no
a = b;
b = c;
}
}
int main() {
lucas_no(10);
return 0;
}
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
/*
C++ Program
Print lucas numbers list
*/
#include<iostream>
using namespace std;
class MyNumber {
public:
//Function which are display initial N lucas number
void lucas_no(int n) {
//Variable which are control execution
//set initial values
int a = 2;
int b = 1;
int c = 0;
cout << "\n" << n << " initial lucas number is \n";
//loop which are printing N lucas numbers
for (int i = 0; i < n; i++) {
cout << " " << a;
c = a + b;
//next lucas no
a = b;
b = c;
}
}
};
int main() {
MyNumber obj;
// Test Case
obj.lucas_no(10);
return 0;
}
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
/*
Java Program
Print lucas numbers list
*/
public class MyNumber {
//Function which are display initial N lucas number
public void lucas_no(int n)
{
//Variable which are control execution
//set initial values
int a = 2;
int b = 1;
int c = 0;
System.out.print("\n"+n+" initial lucas number is \n");
//loop which are printing N lucas numbers
for (int i = 0; i < n; i++)
{
System.out.print(" "+a );
c = a + b;
//next lucas no
a = b;
b = c;
}
}
public static void main(String[] args) {
MyNumber obj = new MyNumber();
// Test Case
obj.lucas_no(10);
}
}
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
/*
C# Program
Print lucas numbers list
*/
using System;
public class MyNumber {
//Function which are display initial N lucas number
public void lucas_no(int n) {
//Variable which are control execution
//set initial values
int a = 2;
int b = 1;
int c = 0;
Console.Write("\n" + n + " initial lucas number is \n");
//loop which are printing N lucas numbers
for (int i = 0; i < n; i++) {
Console.Write(" " + a);
c = a + b;
//next lucas no
a = b;
b = c;
}
}
public static void Main(String[] args) {
MyNumber obj = new MyNumber();
// Test Case
obj.lucas_no(10);
}
}
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
# Python 3 Program
# Print lucas numbers list
class MyNumber :
#Function which are display initial N lucas number
def lucas_no(self, n) :
#set initial values
#Variable which are control execution
a = 2
b = 1
c = 0
print("\n", n ," initial lucas number is ")
#loop which are printing N lucas numbers
i = 0
while (i < n) :
print(" ", a)
c = a + b
#next lucas no
a = b
b = c
i += 1
def main() :
obj = MyNumber()
obj.lucas_no(10)
if __name__ == "__main__":
main()
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
# Ruby Program
# Print lucas numbers list
class MyNumber
#Function which are display initial N lucas number
def lucas_no(n)
#Variable which are control execution
#Set initial values
a = 2
b = 1
c = 0
print("\n", n ," initial lucas number is \n")
#loop which are printing N lucas numbers
i = 0
while (i < n)
print(" ", a)
c = a + b
#next lucas no
a = b
b = c
i += 1
end
end
end
def main()
obj = MyNumber.new()
obj.lucas_no(10)
end
main()
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
/*
Scala Program
Print lucas numbers list
*/
class MyNumber {
//Function which are display initial N lucas number
def lucas_no(n: Int): Unit = {
//Variable which are control execution
//set initial values
var a: Int = 2;
var b: Int = 1;
var c: Int = 0;
print(s"\n $n initial lucas number is \n");
//loop which are printing N lucas numbers
var i: Int = 0;
while (i < n) {
print(s" $a");
c = a + b;
//next lucas no
a = b;
b = c;
i += 1;
}
}
}
object Main {
def main(args: Array[String]): Unit = {
var obj: MyNumber = new MyNumber();
obj.lucas_no(10);
}
}
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
/*
Swift 4 Program
Print lucas numbers list
*/
class MyNumber {
//Function which are display initial N lucas number
func lucas_no(_ n: Int) {
//Variable which are control execution
//set initial values
var a: Int = 2;
var b: Int = 1;
var c: Int = 0;
print("\n", n ," initial lucas number is ");
//loop which are printing N lucas numbers
var i: Int = 0;
while (i < n) {
print(" ", a,terminator:"");
c = a + b;
//next lucas no
a = b;
b = c;
i += 1;
}
}
}
func main() {
let obj: MyNumber = MyNumber();
obj.lucas_no(10);
}
main();
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
<?php
/*
Php Program
Print lucas numbers list
*/
class MyNumber {
//Function which are display initial N lucas number
public function lucas_no($n) {
//Variable which are control execution
//set initial values
$a = 2;
$b = 1;
$c = 0;
echo("\n". $n ." initial lucas number is \n");
//loop which are printing N lucas numbers
for ($i = 0; $i < $n; $i++) {
echo(" ". $a);
$c = $a + $b;
//next lucas no
$a = $b;
$b = $c;
}
}
};
function main() {
$obj = new MyNumber();
// Test Case
$obj->lucas_no(10);
}
main();
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
/*
Node Js Program
Print lucas numbers list
*/
class MyNumber {
//Function which are display initial N lucas number
lucas_no(n) {
//Variable which are control execution
//set initial values
var a = 2;
var b = 1;
var c = 0;
process.stdout.write("\n" + n + " initial lucas number is \n");
//loop which are printing N lucas numbers
for (var i = 0; i < n; i++) {
process.stdout.write(" " + a);
c = a + b;
//next lucas no
a = b;
b = c;
}
}
}
function main(args) {
var obj = new MyNumber();
// Test Case
obj.lucas_no(10)
}
main();
Output
10 initial lucas number is
2 1 3 4 7 11 18 29 47 76
Explanation
- We define the function
lucas_no
that takes an integer 'n' as input. - Inside the function, we initialize variables 'a', 'b', and 'c' to 2, 1, and 0, respectively.
- We then use a loop to generate 'n' Lucas numbers. In each iteration, we print the current value of 'a' and update 'a', 'b', and 'c' to generate the next Lucas number.
- After the loop, we print a newline to separate the output from any other text that may follow.
Output Explanation
When we run the code with 'n' set to 10, it prints the first 10 Lucas numbers as follows:
10 initial Lucas numbers are: 2 1 3 4 7 11 18 29 47 76
Time Complexity
The time complexity of this implementation is O(N) since we iterate 'N' times to generate the first 'N' Lucas numbers. The calculation of each Lucas number requires constant time operations, so the overall time complexity is linear in terms of 'N'.
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment