الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف ينعمل ها الكود؟؟

مغلق
بدأه mona22 في 30 يناير 2007 · 5 رد · 494 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته بما اني مبتدئه باالبرمجه

ياريت اعرف

كيف اعمل برنامج لطباعه الاعداد الاوليه المحصوره بين 0 و50؟؟؟؟؟؟؟؟؟؟؟

بلغه السي؟؟

تم تعديل هذه المشاركة بواسطة mona22 في 30 يناير 2007 في 13:15

#2

اخي الحبيب زي ما بنعرف انه يجب علينا معرفة القاعدة لاي شيء حتى نستطيع عمل البرنامج والاعداد الاولية هي الاعداد التي تقبل القسمة على الواحد وعلى نفسها وعلى هذا الاساس بتعمل فنكشن لهذه المعادلة وتستدعيه وبتوقع بتعمل كمان على الاف ستاتمنت وانا اسف مافي وقت ولا كان كتبتلك الكود بس انتا حاول واذا ما اعرفت ردلي خبر وانا بكتبلك اياه وهذا لرابط يمكن يفيدك...... (h)

/index.php?showtopic=77545

hackers.jpg
#3

بسم الله

اخي الكريم كما أسلف أخي الذي سبقني بالرد

عندما تريد عمل شيء يجب أن تعرف ماهو

و الأعداد التي تريدها لو كانت هي الأعداد الفردية لكان البرنامج في قمة السهولة

for(i=1;i<51;i+2)

printf("%d\t",i);

فكل ما في الأمر هو الشرط و جملة الزيادة

و لكن حالتك حالة خاصة و هي الأعداد الأولية

يكون الشرط أنه لو قسم الرقم على نفسه ينتج واحد

ولو قسم على الرقم 2 يكون الناتج كسري ... إستخدم عبارة باقي القسمة و ضع ناتجها في متغيير %

#4

اولا شكرااا جزيلا للرد :)

بصراحه حاولت كثير ولما بعمل الشرط لقيت كل الاعداد تقبل على نفسها او على1 فيطبع كل الاعداد المحصوره بلا استثناء ...

فما احترت في الشرط؟؟

جزاكم الله خير

#5

شرط العدد الاولي انه يقبل القسمه على نفسه فقط و العدد 1

وهناك قاعدة تقول انه يكفي انك تجرب الاعداد من 2 الى جذر العدد

مثال:

هل العدد 17 عدد اولي ؟

نجرب نقسم على 2 -> جذر الـ 17 (تقريبا يساوي 4 وكسور)

نجرب نقسم الى 5 (ما اذكر هي لسيلينق او الفلور) لكن من باب الاحتياط

يعني نقسم 17 على الـ 2 الى 5 اذا كان العدد لا يقل القسمة على اي من الاعداد فأن العدد اولي

#6
 #include <cmath>
#include <iostream>
using namespace std;

int d1,d2;

bool isPrime(int a)
{
	int b=(int) (sqrt(a))+1;

	for(int i=2;i<=b;i++)
		if(a%i==0)
			return false;
	return true;
}

void print()
{
	for(int i=d1;i<=d2;i++)
		if(isPrime(i))
			cout<<i<<endl;
}

int main()
{
	cin>>d1>>d2; //first digit and second (the range between the two)
	print();
	return 0;
}

هذا الكود

تم تعديل هذه المشاركة بواسطة NullFlag في 31 يناير 2007 في 01:50

هذا الموضوع مغلق.

مواضيع مشابهة