কম্পিউটার

একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করার জন্য সি প্রোগ্রাম?


একটি মৌলিক সংখ্যা এমন একটি সংখ্যা যা শুধুমাত্র দুটি সংখ্যা এবং একটি দ্বারা বিভাজ্য। একটি সংখ্যার গুণনীয়ক হল একটি সংখ্যা যা এটিকে ভাগ করতে পারে।

প্রথম দশটি মৌলিক সংখ্যার তালিকা হল 2,3,5,7,11,13,17,23,29,31৷

যে সংখ্যা মৌলিক নয় তা একটি যৌগিক সংখ্যা। একটি যৌগিক সংখ্যা এমন একটি সংখ্যা যা দুটির বেশি সংখ্যা দ্বারা ভাগ করা যায়।

অন্যথায় প্রাইম এবং কম্পোজিট সেখানে 1 আছে যা প্রাইম বা যৌগিক নয় কারণ এটি শুধুমাত্র নিজের দ্বারা ভাগ করা যায়।

একটি সংখ্যা মৌলিক বা যৌগিক কিনা তা কীভাবে পরীক্ষা করবেন একটি সংখ্যা মৌলিক কিনা তা পরীক্ষা করার জন্য দুটি শর্ত আছে যা পরীক্ষা করা উচিত

1) এটি 1 এর থেকে বড় একটি পূর্ণ সংখ্যা হওয়া উচিত।

2) এটিতে শুধুমাত্র দুটি ফ্যাক্টর থাকা উচিত যেমন একটি এবং সংখ্যা নিজেই।

যদি এই দুটি শর্ত সন্তুষ্ট হয়, তাহলে আমরা বলতে পারি একটি সংখ্যা একটি মৌলিক সংখ্যা।

আমাদের প্রোগ্রামে, আমরা সংখ্যাটিকে সেই সংখ্যার চেয়ে ছোট প্রতিটি সংখ্যা দ্বারা ভাগ করার পরীক্ষা করব। প্রদত্ত সংখ্যার চেয়ে ছোট কোনো সংখ্যাকে ভাগ করলে তা মৌলিক সংখ্যা নয়। অন্যথায়, এটি একটি মৌলিক সংখ্যা।

আসুন দুটি সংখ্যার একটি উদাহরণ নেওয়া যাক এবং এই প্রক্রিয়াটি ব্যবহার করে তারা মৌলিক কিনা তা পরীক্ষা করে দেখি।

Input − Number1 − 42
Output − 42 is not a prime number

যুক্তি − আমরা 42 কে 1 এর থেকে বড় এবং 42 এর থেকে ছোট প্রতিটি সংখ্যা দিয়ে ভাগ করব। তাই,

42/2 =21 অর্থাৎ 42 2 দ্বারা বিভাজ্য, এর মানে 42 একটি মৌলিক সংখ্যা নয় কারণ এটি অন্য একটি সংখ্যা দ্বারা বিভাজ্য৷

Input − Number2 − 7
Output − 7 is a prime number

যুক্তি − আমরা 1 এর চেয়ে বড় এবং 7 এর থেকে ছোট প্রতিটি সংখ্যা দিয়ে সাতটি ভাগ করব। তাই,

7 2 দ্বারা বিভাজ্য নয়, তাই কোডটি পরবর্তী সংখ্যার জন্য পরীক্ষা করবে অর্থাৎ 3

7টি 3 দ্বারা বিভাজ্য নয়, তাই কোডটি পরবর্তী সংখ্যার জন্য পরীক্ষা করবে অর্থাৎ 4

7 কে 4 দ্বারা বিভাজ্য নয়, তাই কোডটি পরবর্তী সংখ্যার জন্য পরীক্ষা করবে অর্থাৎ 5

7 5 দ্বারা বিভাজ্য নয়, তাই কোডটি পরবর্তী সংখ্যার জন্য পরীক্ষা করবে অর্থাৎ 6

7 6 দ্বারা বিভাজ্য নয়, এর মানে হল 7 শুধুমাত্র 1 দ্বারা বিভাজ্য এবং 7 এর মানে হল 7 একটি মৌলিক সংখ্যা৷

উপরের যুক্তিটি দেখুন যে সংখ্যাটি 1000 প্লাস বা 100000 প্লাস হবে তাহলে প্রোগ্রামটি লুপের জন্য অনেকগুলি পুনরাবৃত্তি করবে এই পদ্ধতিতে অনেক গণনা সময় লাগবে। তাই পুনরাবৃত্তির সংখ্যা কমাতে তাদের অবশ্যই একটি ভাল উপায় হতে হবে।

এটির একটি অপ্টিমাইজ করা সমাধান লুপটি কেবল অর্ধেকই চালানো হয়। এর মানে হল যদি সংখ্যাটি 77 হয় তাহলে লুপটি শুধুমাত্র 38 পর্যন্ত চলবে৷ এটি প্রয়োজনীয় পুনরাবৃত্তির সংখ্যা কমিয়ে দেবে তাই আমরা আমাদের প্রোগ্রাম তৈরি করতে এই অ্যালগরিদমটি ব্যবহার করব৷

উদাহরণ

#include <stdio.h>
int main() {
   int num = 33, flag = 0;
   for(int i=2 ; i < num/2 ; i++) {
      if(num%i == 0) {
         printf("%d is not a prime number", num);
         flag = 1;
         break;
      }
   }
   if(flag == 0) {
      printf("%d is a prime number", num);
   }
}

আউটপুট

33 is a prime number

  1. পাইথনে N একটি ডিহেড্রাল প্রাইম নম্বর কিনা তা পরীক্ষা করুন

  2. প্রাইম নম্বর চেক করতে পাইথন প্রোগ্রাম

  3. একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. পাইথন ব্যবহার করে একটি সংখ্যা প্রাইম কিনা তা কীভাবে পরীক্ষা করবেন?