Data Structures and Algorithms (DSA)  

Basic DSA Programs: Fibonacci, Factorial, Prime, Reverse & Palindrome

1. Fibonacci Series

Problem: Write a program to print the Fibonacci series up to n numbers.

Java

import java.util.Scanner;

public class Fibonacci {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the number of terms: ");
        int n = sc.nextInt();
        
        int a = 0, b = 1;
        System.out.print("Fibonacci Series: ");
        
        for (int i = 0; i < n; i++) {
            System.out.print(a + " ");
            int next = a + b;
            a = b;
            b = next;
        }
    }
}

C++

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Enter the number of terms: ";
    cin >> n;

    int a = 0, b = 1;
    cout << "Fibonacci Series: ";
    
    for (int i = 0; i < n; i++) {
        cout << a << " ";
        int next = a + b;
        a = b;
        b = next;
    }
    return 0;
}

Python

n = int(input("Enter the number of terms: "))
a, b = 0, 1
print("Fibonacci Series: ", end="")
for i in range(n):
    print(a, end=" ")
    a, b = b, a + b

C#

using System;

class Program {
    static void Main() {
        Console.Write("Enter the number of terms: ");
        int n = int.Parse(Console.ReadLine());
        
        int a = 0, b = 1;
        Console.Write("Fibonacci Series: ");
        
        for (int i = 0; i < n; i++) {
            Console.Write(a + " ");
            int next = a + b;
            a = b;
            b = next;
        }
    }
}

2. Factorial

Problem: Write a program to calculate the factorial of a number n.

Java

import java.util.Scanner;

public class Factorial {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = sc.nextInt();
        
        long fact = 1;
        for (int i = 1; i <= n; i++) {
            fact *= i;
        }
        
        System.out.println("Factorial of " + n + " is: " + fact);
    }
}

C++

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;

    long long fact = 1;
    for (int i = 1; i <= n; i++) {
        fact *= i;
    }

    cout << "Factorial of " << n << " is: " << fact << endl;
    return 0;
}

Python

n = int(input("Enter a number: "))
fact = 1
for i in range(1, n+1):
    fact *= i
print(f"Factorial of {n} is: {fact}")

C#

using System;

class Program {
    static void Main() {
        Console.Write("Enter a number: ");
        int n = int.Parse(Console.ReadLine());

        long fact = 1;
        for (int i = 1; i <= n; i++) {
            fact *= i;
        }
        Console.WriteLine($"Factorial of {n} is: {fact}");
    }
}

3. Prime Number

Problem: Write a program to check if a number is prime.

Java

import java.util.Scanner;

public class PrimeNumber {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = sc.nextInt();

        boolean isPrime = true;
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                isPrime = false;
                break;
            }
        }

        if (n <= 1) isPrime = false;
        System.out.println(n + (isPrime ? " is prime." : " is not prime."));
    }
}

C++

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;

    bool isPrime = true;
    for (int i = 2; i <= sqrt(n); i++) {
        if (n % i == 0) {
            isPrime = false;
            break;
        }
    }

    if (n <= 1) isPrime = false;
    cout << n << (isPrime ? " is prime." : " is not prime.") << endl;
    return 0;
}

Python

n = int(input("Enter a number: "))
is_prime = True
for i in range(2, int(n ** 0.5) + 1):
    if n % i == 0:
        is_prime = False
        break
if n <= 1:
    is_prime = False
print(f"{n} {'is prime' if is_prime else 'is not prime'}")

C#

using System;

class Program {
    static void Main() {
        Console.Write("Enter a number: ");
        int n = int.Parse(Console.ReadLine());

        bool isPrime = true;
        for (int i = 2; i <= Math.Sqrt(n); i++) {
            if (n % i == 0) {
                isPrime = false;
                break;
            }
        }

        if (n <= 1) isPrime = false;
        Console.WriteLine($"{n} {(isPrime ? "is prime" : "is not prime")}");
    }
}

4. Reverse a Number

Problem: Write a program to reverse the digits of a number.

Java

import java.util.Scanner;

public class ReverseNumber {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = sc.nextInt();
        
        int reversed = 0;
        while (n != 0) {
            reversed = reversed * 10 + n % 10;
            n /= 10;
        }
        
        System.out.println("Reversed Number: " + reversed);
    }
}

C++

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;

    int reversed = 0;
    while (n != 0) {
        reversed = reversed * 10 + n % 10;
        n /= 10;
    }

    cout << "Reversed Number: " << reversed << endl;
    return 0;
}

Python

n = int(input("Enter a number: "))
reversed_num = 0
while n != 0:
    reversed_num = reversed_num * 10 + n % 10
    n //= 10
print(f"Reversed Number: {reversed_num}")

C#

using System;

class Program {
    static void Main() {
        Console.Write("Enter a number: ");
        int n = int.Parse(Console.ReadLine());

        int reversed = 0;
        while (n != 0) {
            reversed = reversed * 10 + n % 10;
            n /= 10;
        }

        Console.WriteLine($"Reversed Number: {reversed}");
    }
}

5. Palindrome

Problem: Write a program to check if a number is a palindrome.

Java

import java.util.Scanner;

public class Palindrome {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = sc.nextInt();
        
        int original = n, reversed = 0;
        while (n != 0) {
            reversed = reversed * 10 + n % 10;
            n /= 10;
        }
        
        if (original == reversed)
            System.out.println(original + " is a palindrome.");
        else
            System.out.println(original + " is not a palindrome.");
    }
}

C++

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;

    int original = n, reversed = 0;
    while (n != 0) {
        reversed = reversed * 10 + n % 10;
        n /= 10;
    }

    if (original == reversed)
        cout << original << " is a palindrome." << endl;
    else
        cout << original << " is