যে কোনো পূর্ণসংখ্যা যা ১-এর চেয়ে বড় এবং যার শুধু দুটি ফ্যাক্টর আছে অর্থাৎ ১ এবং সেটাই, তাকে প্রাইম নম্বর বলে। এই দুটি সংখ্যা ছাড়া এর কোনো পজিটিভ ডিভাইজর নেই। উদাহরণ: 7 = 1 × 7
একটি সংখ্যা প্রাইম কিনা বের করার অ্যালগরিদম:
- একটি ইন্টিজার ভেরিয়েবল A নিন।
- ভেরিয়েবল A কে (A-1 থেকে 2) দিয়ে ভাগ করুন।
- যদি A যেকোনো ভ্যালু (A-1 থেকে 2) দিয়ে বিভাজ্য হয় তবে সেটি প্রাইম নয়।
- অন্যথায় সেটি প্রাইম।
উদাহরণ
নিচের জাভা প্রোগ্রাম ইউজার থেকে একটি ইন্টিজার নেয়, দেয়া সংখ্যা প্রাইম কিনা বের করে এবং পরবর্তী প্রাইম নম্বর প্রিন্ট করে।
import java.util.Scanner;
public class NextNumberisPrime {
public static int isPrime(int num) {
int prime = 1;
for (int i = 2; i < num; i++) {
if ((num % i) == 0) {
prime = 0;
}
}
return num;
}
public static int nextPrime(int num) {
num++;
for (int i = 2; i < num; i++) {
if (num % i == 0) {
num++;
i = 2;
} else {
continue;
}
}
return num;
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number ::");
int num = sc.nextInt();
int result = 0;
int prime = isPrime(num);
if (prime == 1) {
System.out.println(num + " is a prime number");
} else {
System.out.println(num + " is not a prime number");
}
System.out.println("Next prime number is: " + nextPrime(num));
}
}
আউটপুট
Enter a number :: 25
25 is not a prime number
Next prime number is: 29
দोष ও উন্নতি: মূল কোডে isPrime মেথডটি সবসময় num রিটার্ন করে (বগ)। সঠিক ইমপ্লিমেন্টেশনে prime ভেরিয়েবল রিটার্ন করা উচিত। এছাড়াও লুপ i <= Math.sqrt(num) পর্যন্ত চললে পারফরম্যান্স ভালো হবে।