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

خوازرمية ، لمعرفة إذا ما كان العدد أولياً أم لا

مغلق
بدأه Deadly Arrow في 10 نوفمبر 2006 · 9 رد · 1,509 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

مرحباً بكم ،،

قمت بتصميم خوارزمية بسيطة ، لمعرفة إذا ما كان العدد أولياً أم لا

-مكتوبة بلغة الدلفي

  {Deadly Arrow
	   Quick & Dirty algorithm }
Function IsPrimary (Number:integer): Boolean;
Var
I,PP,X:Integer;
A:Currency;
S:String;
//
 Begin
 X:=0;
  For i:= 2 To Number - 1 Do //
  Begin
   A:= Number / I;
   S:=CurrToStr(A);
   PP:=Pos('.',S);
   If PP = 0 Then
   Begin
	X:=X + 1
	 End;
 End;
   If X <> 0 Then
   Result:=False
   Else
   Result:=True;
   //
End;

مممم .. يمكن استخدام طريقة Len بدلاً عن Pos ،،

على أي حال .. حاولت عملها بالفيجوال بيسك، إلا أنني لم اطرحها نظراً لعدم توفر اللغة بجهازي حاليا ولم اعلم مدى صحة الأوامر لأنني ابدأت بنسيانها .. :wacko:

تم تعديل هذه المشاركة بواسطة Deadly Arrow في 10 نوفمبر 2006 في 18:35

#2

هذه نفس الخوارزمية و لكن بلغة السي بلس بلس

#include<iostream.h>

void main()
{
	int n;

	cin>>n;

	bool prima=1;

	for(int i=2;i<n-1;i++)
		if(n%i==0)
			prima=0;

	if(prima==1)
		cout<<"true"<<endl;
	else 
		cout<<"false"<<endl;

}

تم تعديل هذه المشاركة بواسطة golden man في 10 نوفمبر 2006 في 18:02

#3

و هذه بالفيجوال بيسك 6

أضف زر أمر و مربع نص و ضع الكود التالي :

Private Sub Command1_Click()

Dim prima As Boolean

prima = True

Dim i As Integer

For i = 2 To Val(Text1.Text) - 1
	If Val(Text1.Text) Mod i = 0 Then
		prima = False
	End If
Next

MsgBox (prima)

End Sub

و هذه بالفيجوال بيسك دوت نت و هو شبيه جدا بذلك الذي بالفيجوال بيسك 6

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		Dim prima As Boolean = True
		Dim i As Integer = 0

		For i = 2 To Val(TextBox1.Text) - 1
			If Val(TextBox1.Text) Mod i = 0 Then
				prima = False
			End If
		Next

		MsgBox(prima)

	End Sub

تم تعديل هذه المشاركة بواسطة golden man في 10 نوفمبر 2006 في 18:27

#4

شكراً لك ،،

لكن هل أنت متأكد من صحة خوارزمية الفيجوا بيسك ؟

#5

نعم جربتها

#6

لمعرفة هل العدد أولي أم لا

لا نحتاج إلى المرور على الأعداء من 2 إلى n - 1

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

التالية لأنها مبنية عليها .

#7

طيب ممكن مثال توضيحي و الحل البرمجي

#8

السلام عليكم

اقتباس
طيب ممكن مثال توضيحي و الحل البرمجي

For i = 2 To n^.5

شكرا

#9

عضو فعال

***

المجموعة: اعضاء

المشاركات: 439

التسجيل: 29-July 04

رقم العضوية: 29,804

لمعرفة هل العدد أولي أم لا

لا نحتاج إلى المرور على الأعداء من 2 إلى n - 1

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

التالية لأنها مبنية عليها .

بالضبط هذي theory معروفه فيه كتاب ممتاز للديسكريت ماث

discrete mathematics and its applications

Rosen المؤلف فعلا كتاب ممتاز ويصلح يصير مرجع يعني لنظرية معينه زي حقت الاعداد الاولية :)

#10

هذه الخوارزمية تستخدم فقط إذا كان العدد أقل من 10000 ،

أما إذا كان العدد أكبر من ذلك فينصح باستخدام خوارزميات متقدمة أكثر ..

:)

اللهم طهر أرض فلسطين من العملاء والخونة

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…