সমস্যা বিবৃতি
পূর্ণসংখ্যার একটি প্রদত্ত অ্যারের সাথে যেখানে সমস্ত উপাদান 1000000 এর কম। একটি অ্যারের বৃহত্তম এবং ক্ষুদ্রতম প্রাইমগুলির মধ্যে পার্থক্য খুঁজুন।
উদাহরণ
Array: [ 1, 2, 3, 4, 5 ] Largest Prime Number = 5 Smallest Prime Number = 2 Difference = 5 - 3 = 2.
সমাধান
Eratosthenes পদ্ধতির চালনি ব্যবহার করুন, যা একটি প্রদত্ত সংখ্যার চেয়ে ছোট সমস্ত মৌলিক সংখ্যা খুঁজে বের করার একটি কার্যকর উপায়। তারপর আমরা প্রয়োজনীয় পার্থক্য পেতে সবচেয়ে বড় এবং ক্ষুদ্রতম মৌলিক সংখ্যা বের করব।
উদাহরণ
প্রয়োজনীয় আউটপুট খুঁজে পেতে জাভাতে প্রোগ্রামটি নিচে দেওয়া হল।
public class JavaTester {
static int MAX = 1000000;
static boolean prime[] = new boolean[MAX + 1];
public static void runSieveOfEratosthenes(){
//reset prime flags to be true
for(int i=0; i< MAX+1; i++) prime[i] = true;
//set 1 as non-prime
prime[1] = false;
for (int p = 2; p * p <= MAX; p++) {
// If prime[p] is not modified, then it is a prime
if (prime[p]) {
// Update all multiples of p
for (int i = p * 2; i <= MAX; i += p) prime[i] = false;
}
}
}
public static int difference(int arr[]){
int min = MAX + 2;
int max = -1;
for (int i = 0; i < arr.length; i++) {
// check if the number is prime or not
if (prime[arr[i]] == true) {
// set the max and min values
if (arr[i] > max) max = arr[i];
if (arr[i] < min) min = arr[i];
}
}
return max - min;
}
public static void main(String args[]){
// run the sieve
runSieveOfEratosthenes();
int arr[] = { 1, 2, 3, 4, 5 };
System.out.println(difference(arr));
}
} আউটপুট
3