الخوارزميات و هياكل البيانات التحدي التاسع - حل التمرين الرابع بلغة C++

المطلوب

قم بتعريف دالة إسمها IsPrime(), عند استدعاءها نمرر لها عدد, فترجع True إذا كان العدد عبارة عن عدد أوّلي ( Prime Number ) و ترجع False إن لم يكن كذلك.
بعدها قم بتجربة هذه الدالة في البرنامج.

معلومة: العدد الأولي هو العدد الذي يقبل القسمة على نفسه و على 1 فقط مثل الأرقام 1 - 3 - 5 - 7 - 11 - 13 - 17 إلخ..


الحل بلغة C++

#include <iostream>

bool isPrime(int n) {

	// إذا كان الرقم من الأساس أصغر أو يساوي 1 فعندها لا يعتبر عدد أولي
	if (n <= 1)
	{
		return false;
	}

	// إذا كان الرقم الذي تم تمريره إليها أكبر من 1 عندها سيتم التأكد منه
	else
	{
		// سنحاول قسمته على جميع الأعداد الموجودة إبتداءاً من الرقم 2 إلى نصف قيمه العدد الذي تم تمريره للدالة
		for (int i = 2; i <= (n / 2); i++)
		{
			// إذا كان العدد الذي تم تمريره لها لا يمكن قسمته على أي رقم بين 2 و نصفه فعندها لا يعتبر عدد أولي
			if (n % i == 0)
			{
				return false;
			}
		}
		// إذا كان العدد الذي تم تمريره لها يمكن قسمته على أي رقم بين 2 و نصفه فعندها يعتبر عدد أولي
		return true;
	}

}


int main() {
	
	std::cout << "2 is a prime number? " << (isPrime(2) ? "true" : "false") << "\n";
	std::cout << "3 is a prime number? " << (isPrime(3) ? "true" : "false") << "\n";
	std::cout << "4 is a prime number? " << (isPrime(4) ? "true" : "false") << "\n";
	std::cout << "5 is a prime number? " << (isPrime(5) ? "true" : "false") << "\n";
	std::cout << "6 is a prime number? " << (isPrime(6) ? "true" : "false") << "\n";

	char end; std::cin >> end;
	return 0;

}
		

سنحصل على النتيجة التالية عند التشغيل.

2 is a prime number? true
3 is a prime number? true
4 is a prime number? false
5 is a prime number? true
6 is a prime number? false
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة