কম্পিউটার

বেলি-পিএসডব্লিউ প্রাথমিক পরীক্ষা করার জন্য সি++ প্রোগ্রাম


বেলি-পিএসডব্লিউ প্রাথমিক পরীক্ষা, এই পরীক্ষাটি রবার্ট বেলি, কার্ল পোমেরেন্স, জন সেলফ্রিজ এবং স্যামুয়েল ওয়াগস্টাফের নামে নামকরণ করা হয়েছে। এটি একটি পরীক্ষা যা একটি সংখ্যা একটি যৌগিক সংখ্যা বা সম্ভবত মৌলিক কিনা তা পরীক্ষা করে।

অ্যালগরিদম

MillerTest()

বুলিয়ান টাইপের মিলারটেস্ট ফাংশন ঘোষণা করা শুরু করুন। MT_dt এবং MT_num পূর্ণসংখ্যা ডেটাটাইপ ঘোষণা করুন এবং প্যারামিটার হিসাবে পাস করুন। পূর্ণসংখ্যা ডেটাটাইপের MT_a এবং MT_x ঘোষণা করুন। MT_a =2 + rand( ) % (MT_num - 4) শুরু করুন। MT_x =pow(MT_a, MT_dt, MT_num) শুরু করুন। যদি (MT_x ==1 || MT_x ==MT_num - 1) তাহলে true দিন। যখন (MT_dt !=MT_num - 1) MT_x =(MT_x * MT_x) % MT_num করুন। MT_dt *=2. যদি (MT_x ==1) তাহলে মিথ্যা ফেরত দিন; যদি (MT_x ==MT_num - 1) তাহলে true রিটার্ন করুন। মিথ্যা ফেরত দিন। শেষ।

উদাহরণ

#include #includeনেমস্পেস ব্যবহার করে std;int pow(int pow_a, unsigned int pow_b, int pow_c) { int ফলাফল =1; pow_a =pow_a % pow_c; যখন (pow_b> 0) { if (pow_b &1) ফলাফল =(ফলাফল * pow_a) % pow_c; pow_b =pow_b>> 1; pow_a =(pow_a * pow_a) % pow_c; } রিটার্ন ফলাফল;}বুল মিলারটেস্ট(int MT_dt, int MT_num) { int MT_a =2 + rand( ) % (MT_num - 4); int MT_x =pow(MT_a, MT_dt, MT_num); যদি (MT_x ==1 || MT_x ==MT_num - 1) সত্য ফেরত দেয়; যখন (MT_dt !=MT_num - 1) { MT_x =(MT_x * MT_x) % MT_num; MT_dt *=2; যদি (MT_x ==1) মিথ্যা ফেরত দেয়; যদি (MT_x ==MT_num - 1) সত্য ফেরত দেয়; } return false;}bool prime(int P_N, int P_K) { if (P_N <=1 || P_N ==4) return false; যদি (P_N <=3) সত্য ফেরত দেয়; int P_D =P_N - 1; যখন (P_D % 2 ==0) P_D /=2; জন্য (int i =0; i >num1; cout<>num2; cout< 

আউটপুট

প্রথম সংখ্যাটি লিখুন:2323 একটি মৌলিক সংখ্যাএটি অন্য একটি সংখ্যা লিখুন:4545 একটি যৌগিক সংখ্যা

  1. শেকার সাজানোর জন্য C++ প্রোগ্রাম

  2. যেকোন ম্যাট্রিক্সের LU পচন সঞ্চালনের জন্য C++ প্রোগ্রাম

  3. C++ প্রোগ্রাম জটিল সংখ্যা গুণন সম্পাদন করতে

  4. ম্যাট্রিক্স গুণন সম্পাদনের জন্য C++ প্রোগ্রাম