Basic Programs
Basic Programs
import java.util.Scanner;
long factorial = 1;
factorial *= i;
import java.util.Scanner;
if (number <= 1) {
isPrime = false;
} else {
if (number % i == 0) {
isPrime = false;
break;
if (isPrime) {
} else {
Here's a Java program to find the greatest common divisor (GCD) of two numbers:
import java.util.Scanner;
if (b == 0) {
return a;
Here's a Java program to calculate the least common multiple (LCM) of two numbers:
import java.util.Scanner;
System.out.println("The LCM of " + number1 + " and " + number2 + " is: " + lcm);
}
public static int findGCD(int a, int b) {
if (b == 0) {
return a;
import java.util.Scanner;
int n = scanner.nextInt();
if (n <= 0) {
} else if (n == 1 || n == 2) {
return 1;
} else {
long fibNMinus2 = 1;
long fibNMinus1 = 1;
long fibN = 0;
fibNMinus2 = fibNMinus1;
fibNMinus1 = fibN;
return fibN;
import java.util.Scanner;
int reversedNumber = 0;
while (number != 0) {
int digit = number % 10;
number /= 10;
return reversedNumber;
import java.util.Scanner;
if (isPalindrome(number)) {
} else {
int reversedNumber = 0;
Java program to calculate the square root of a number without using built-in functions. We will use
the Newton-Raphson method for approximating the square root:
import java.util.Scanner;
if (number < 0) {
} else {
}
return guess;
import java.util.Scanner;
System.out.println(base + " raised to the power of " + exponent + " is: " + result);
if (exponent == 0) {
return 1.0;
result *= base;
}
if (exponent < 0) {
} else {
return result;
import java.util.Scanner;
int sum = 0;
while (number != 0) {
sum += digit;
number /= 10;
return sum;
import java.util.Scanner;
if (isEven(number)) {
} else {
return number % 2 == 0;
}
Here's a Java program to find the largest digit in a number:
import java.util.Scanner;
int largestDigit = 0;
number /= 10;
return largestDigit;
}}
Here's a Java program to count the number of digits in a given number:
import java.util.Scanner;
number = Math.abs(number);
if (number == 0) {
int count = 0;
number /= 10;
count++;
return count;
import java.util.Scanner;
if (decimalNumber == 0) {
}
StringBuilder binary = new StringBuilder();
decimalNumber /= 2;
return binary.toString();
import java.util.Scanner;
}
public static int convertToDecimal(String binaryNumber) {
int decimalNumber = 0;
if (digit == '1') {
return decimalNumber;
import java.util.Scanner;
} else {
String[] romanNumerals = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX",
"V", "IV", "I"};
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
int i = 0;
roman.append(romanNumerals[i]);
decimalNumber -= values[i];
} else {
i++;
return roman.toString();
}}
Here's a Java program to find the first N prime numbers:
import java.util.Scanner;
int N = scanner.nextInt();
if (N > 0) {
} else {
int count = 0;
int number = 2;
while (count < N) {
if (isPrime(number)) {
primes[count] = number;
count++;
number++;
return primes;
if (number <= 1) {
return false;
if (number % i == 0) {
return false;
return true;
}
Here's a Java program to check if a number is an Armstrong number:
import java.util.Scanner;
if (isArmstrongNumber(number)) {
} else {
int n = 0;
originalNumber = number;
while (originalNumber != 0) {
originalNumber /= 10;
n++;
originalNumber = number;
while (originalNumber != 0) {
originalNumber /= 10;
Here's a Java program to generate a list of prime numbers up to N using the Sieve of
Eratosthenes algorithm:
import java.util.Scanner;
import java.util.Arrays;
int N = scanner.nextInt();
if (N >= 2) {
Arrays.fill(isPrime, true);
if (isPrime[p]) {
isPrime[i] = false;
if (isPrime[i]) {
} else {
}
Here's a Java program to calculate the sum of all multiples of a given number within a
range:
import java.util.Scanner;
int to = scanner.nextInt();
System.out.println("The sum of multiples of " + multiple + " in the range " + from + " to
" + to + " is: " + sum);
int sum = 0;
if (i % multiple == 0) {
sum += i;
}
}
return sum;
import java.util.Scanner;
if (isPerfectNumber(number)) {
} else {
if (number <= 1) {
}
int sumOfDivisors = 1; // 1 is always a divisor.
if (number % i == 0) {
sumOfDivisors += i;
if (i != (number / i)) {
import java.util.Scanner;
} else {
if (number < 0) {
return isPalindrome(numberInBase);
int left = 0;
if (str.charAt(left) != str.charAt(right)) {
return false;
left++;
right--;
return true;
import java.util.Scanner;
double a = scanner.nextDouble();
double d = scanner.nextDouble();
int n = scanner.nextInt();
System.out.println("The " + n + "th term of the arithmetic progression is: " + nthTerm);
import java.util.Scanner;
double a = scanner.nextDouble();
double r = scanner.nextDouble();
int n = scanner.nextInt();
System.out.println("The " + n + "th term of the geometric progression is: " + nthTerm);
}
Here's a Java program to check if a number is a happy number:
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
if (isHappyNumber(number)) {
} else {
seen.add(number);
int sum = 0;
number /= 10;
number = sum;
return number == 1;
Here's a Java program to calculate the square of a number using bitwise operators:
import java.util.Scanner;
if (number == 0) {
return 0;
if (number == 1) {
return 1;
int x = number;
int y = number;
long result = 0;
while (y > 0) {
if ((y & 1) != 0) {
result = result + x;
x <<= 1;
y >>= 1;
}
return result;
import java.util.Scanner;
if (isNarcissisticNumber(number)) {
} else {
int n = countDigits(number);
int sum = 0;
number /= 10;
int count = 0;
number /= 10;
count++;
return count;
import java.util.Scanner;
// Repeatedly sum the digits of the number until a single-digit result is obtained.
int sum = 0;
number /= 10;
number = sum;
return number;
import java.util.Scanner;
if (isStrongNumber(number)) {
} else {
int sumOfFactorialDigits = 0;
sumOfFactorialDigits += factorial(digit);
number /= 10;
if (n == 0) {
return 1;
int fact = 1;
fact *= i;
return fact;
import java.util.Scanner;
System.out.println("The sum of proper divisors of " + number + " is: " + sum);
if (number % i == 0) {
sum += i;
return sum;
Here's a Java program to find the number of trailing zeros in the factorial of a number:
import java.util.Scanner;
}
public static int countTrailingZerosInFactorial(int number) {
int trailingZeros = 0;
// Divide the number by increasing powers of 5 and add the quotient to the trailingZeros
trailingZeros += number / i;
return trailingZeros;
import java.util.Scanner;
if (isPerfectSquare(number)) {
} else {
}
}
if (number < 0) {
import java.util.Scanner;
}
public static String convertToBinary(int decimalNumber) {
if (decimalNumber == 0) {
if (bit == 1) {
leadingZeros = false;
if (!leadingZeros) {
binary.append(bit);
return binary.toString();
Here's a Java program to determine the number of digits needed to represent a number
in a given base:
import java.util.Scanner;
public class NumberOfDigitsInBase {
System.out.println("The number of digits needed to represent " + number + " in base " +
base + " is: " + digits);
if (number == 0) {
int digits = 0;
number /= base;
digits++;
}
return digits;
import java.util.Scanner;
int N = scanner.nextInt();
if (N >= 0) {
} else {
}
Here's a Java program to find the sum of two binary numbers:
import java.util.Scanner;
System.out.println("The sum of " + binary1 + " and " + binary2 + " is: " + sum);
int carry = 0;
int i = binary1.length() - 1;
int j = binary2.length() - 1;
carry = currentSum / 2;
return sum.toString();
Here's a Java program to calculate the square of a large number using a fast
exponentiation algorithm:
import java.util.Scanner;
System.out.println(base + " raised to the power " + exponent + " is: " + result);
return 1;
long result = 1;
if (exponent % 2 == 1) {
result *= base;
base *= base;
exponent /= 2;
return result;
import java.util.Scanner;
if (isPowerOfTwo(number)) {
System.out.println(number + " is a power of 2.");
} else {
// A power of two has only one bit set in its binary representation.
// So, to check if a number is a power of two, we can use the bitwise AND operation.
import java.util.Scanner;
if (isFibonacci(number)) {
System.out.println(number + " is a Fibonacci number.");
} else {
return s * s == x;
Here's a Java program to calculate the product of two large numbers using the
Karatsuba algorithm:
import java.util.Scanner;
System.out.println("The product of " + num1 + " and " + num2 + " is: " + product);
return "0";
return num2;
return num1;
}
// Pad the numbers to have the same length
String b = num1.substring(split);
String d = num2.substring(split);
return product;
}
int carry = 0;
if (carry > 0) {
result.insert(0, carry);
return result.toString();
int borrow = 0;
if (diff < 0) {
diff += 10;
borrow = 1;
} else {
borrow = 0;
result.insert(0, diff);
import java.util.Scanner;
int N = scanner.nextInt();
}
public static int calculateTriangularNumber(int N) {
// The nth triangular number is the sum of the first N natural numbers.
return (N * (N + 1)) / 2;
import java.util.Scanner;
listPrimeFactors(number);
while (number % 2 == 0) {
System.out.print("2 ");
number /= 2;
}
// Continue with odd prime factors from 3 onwards.
while (number % i == 0) {
number /= i;
if (number > 2) {
System.out.print(number);
import java.util.Scanner;
int n = scanner.nextInt();
if (n <= 0) {
return;
numbers[i] = scanner.nextDouble();
if (number == 0) {
return 0.0;
}
sumOfReciprocals += 1 / number;
import java.util.Scanner;
if (isAbundant(number)) {
} else {
if (number <= 1) {
return false; // Abundant numbers are defined for positive integers greater than 1.
}
if (number % i == 0) {
sumOfDivisors += i;
if (i != number / i) {
sumOfDivisors += number / i;
import java.util.Scanner;
} else {
int left = 0;
if (!isStrobogrammaticPair(leftChar, rightChar)) {
return false;
left++;
right--;
return true;
}
public static boolean isStrobogrammaticPair(char a, char b) {
return (a == '0' && b == '0') || (a == '1' && b == '1') || (a == '8' && b == '8') || (a == '6'
&& b == '9') || (a == '9' && b == '6');
import java.util.ArrayList;
import java.util.Scanner;
import java.util.List;
int num;
while (true) {
num = scanner.nextInt();
if (num == -1) {
break;
list1.add(num);
}
System.out.println("Enter the second list of numbers. Enter -1 to finish.");
while (true) {
num = scanner.nextInt();
if (num == -1) {
break;
list2.add(num);
if (intersection.isEmpty()) {
} else {
intersection.add(element);
return intersection;
import java.util.Scanner;
int count = 0;
for (int i = 1; i <= number; i++) {
if (number % i == 0) {
count++;
return count;
Here's a Java program to calculate the sum of cubes of the first N natural numbers:
import java.util.Scanner;
int N = scanner.nextInt();
if (N < 1) {
return;
long sum = 0;
return sum;
import java.util.Scanner;
int N = scanner.nextInt();
if (N <= 1) {
return 1;
long catalan = 0;
return catalan;