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

خوارزميه للأعداد الأوليه

مغلق
بدأه NUCLEAR في 31 مارس 2006 · 6 رد · 17,621 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ما هى الخوارزميه التى يمكن عن طريقها معرفة اذا ما كان العدد أولى ام لا ؟!

اذا كنت تعرف الأجابه مسبقا فلا تجاوب !!

اما اذا كنت للمرة الأولى تتعرض لهذه المشكله فيمكنك الأجابه

وسنحاول ايجاد ثغرات فى الخوارزميه حتى نصل للحل الكامل :P

Moore’s Law

– “Number of transistors in chips doubles every 18 
months”.
–  Every 10 years, processors are 100 times more 
powerful.

Gilder’s Law

– “Bandwidth grows at least three times faster than 
computer power”.
– Assuming bandwidth doubles every 12 months; 
every 10 years, it is 1000 times better.
#2

السلام عليكم ورحمة الله

هذه أول مشاركة لي في هذا المنتدى .. وأرجو ان تكون فاتحة خير علي وعليكم ..

لدي طريقتين لإيجاد الاعداد الاولية وسأنقاشها كل على حده ..

1 - الطريقة الاولى .. خوارزمية المنخل الشهيرة لأيجاد الاعداد الاولية :

نضع الاعداد من 2 إلى نهاية المجال المطلوب في مجموعة .. سنسميها مجموعة المنخل sieve .. ثم نبدً بانتزاع الاعداد الاولية منها ووضعها في مجموعة primes وكلما اخذنا عدداً ننزع كل مضاعفاته من المنخل (المضاعفات تحسب جمعاً) , أما كيفية تحديد العدد الاولي فتجري بأخذ أول (أصغر ) بين العناصر المتبقية في مجموعة المنخل .

مثال : ايجاد الاعداد الاولية في المجال من 2 إلى 10

المنخل يحوي في البدء على الاعداد 2,3,4,5,6,7,8,9,10 ننزع مضاعفات اول عدد(2) وهي : 2,4,6,8 .. فيصبح في المجموعة primes العدد الاولي الـ 2

primes ={2}

يبقى لدينا في المنخل : 3,5,7,9 .. بعدئذٍ وكما في السابق ..ننزع مضاعفات اول عنصر وهي 3,9 ونضع الـ 3 في الـprimes

primes = {2,3}

يبقى لدينا في المنخل : 5,7 .. وبنفس الطريقة .. ننزع مضاعفات الـ5 وهي فقط الـ 5 .. ونضع الـ 5 في الـprimes

primes = {2,3,5}

يبقى لدينا في المنخل : 7 نفس الطريقة ..

primes = {2,3,5,7}

وهكذا نكون قد حصلنا على الاعداد الاولية ..

وسأتكلم عن الخوارزمية الاخرى فيما بعد ..

#3

ممتاز

ولكنى قصدت شيئا اخر ... الخوارزميه تختبر احد الأعداد المدخله اذا ما كان اوليا ام لا !

بدون ان يكون لدينا قائمه تحتوى الأعداد الأوليه كلها !

تم تعديل هذه المشاركة بواسطة NUCLEAR في 31 مارس 2006 في 14:39

Moore’s Law

– “Number of transistors in chips doubles every 18 
months”.
–  Every 10 years, processors are 100 times more 
powerful.

Gilder’s Law

– “Bandwidth grows at least three times faster than 
computer power”.
– Assuming bandwidth doubles every 12 months; 
every 10 years, it is 1000 times better.
#4

هذة طريقتي يمكن تكون ملخبطة شوي لكن ماشي حالها.

#include<iostream>
#include<string>
using namespace std;

bool aoly(long namber);
int  Write_Aoly_To(long oio);

int main()
{
long uu;
cout <<"\nEnter nambere :";
cin>>uu;

Write_Aoly_To(uu);


}


/*دالة تظهر الاعداد الاولية حتى العدد المعطى */
int Write_Aoly_To(long oio)
{
char str [200];
int o=0;
while(oio>=2)
{
if (aoly(oio)==true)

cout <<"\t"<<oio;
--oio;
}

return 0;
}
/* دالة تعطى هل العدد اولى ام لا*/
bool aoly(long namber)
{
	bool gg=true;
 for(int i=2;i <= namber - 1;i++)
 {
  if (namber % i == 0)
  {
   gg= false;
   break;
  }
 }
return gg;


}
#5

هذا نقاش عن نفس الموضوع:

/index.ph...ndpost&p=397638

#6
read p
for i=2 to sqrt(p)
if p/i=int(p/i) then goto line90
next
the number is prime
goto line100
line90:    the number is not prime
line100:   end

تم تعديل هذه المشاركة بواسطة romanof في 7 أبريل 2006 في 22:37

من قال لا إله إلا الله صادقا دخل الجنة

موقعي للتعارف و تبادل الأخبار http://www.xybond.com

#7

الموضوع مكرر لذلك ساقوم بالغلق عن اذنكم

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

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

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