السلام عليكم....
اريد حل لسؤال ان يدخل المستخدم مثلا 10 ارقام ويطبع البرنامج فقط الاعداد الاوليه وذلك باستخدام المصفوفه؟
وشكرا لكم.
السلام عليكم....
اريد حل لسؤال ان يدخل المستخدم مثلا 10 ارقام ويطبع البرنامج فقط الاعداد الاوليه وذلك باستخدام المصفوفه؟
وشكرا لكم.
اتفضل اخ احمد
#inclode<iostream.h>
void main(){
int a[9];
cout<<"enter the number"<<endl;
for(int i=0;i<n;i++)
cin>>a;
for(int i=0;i<n;i++)
if(a%2==1)
cout<<a<<endl;
}عليكم السلام و رحمة الله و بركاته
لمعرفة ما إذا كان العدد أولي أم لا يمكنك إستخدام الطريقة التالية
العدد الأولي هو العدد الذي لا يقبل القسمة إلا على نفسه و الواحد
فهو لا يقبل القسمة على الأعداد من 2 إلى العدد الذي ينقصه بواحد
لكن لتبسيط الأعداد نقوم بالتالي(خصوصا للأعداد الكبيرة)
أولا تأخذ الجذر التربيعي للعدد (يجب أن يكون عدد موجب)
و بعدها تقوم بعمل for loop من 2 إلى الجذر التربيعي للعدد
إذا قبل القسمة على أحد هذه الأرقام فهو ليس عدد أولي و إذا أكمل و لم يقبل القسمة على أي من هذه الأعداد (من 2 إلى الجذر التربيعي) فهو عدد أولي و يقوم بطباعته
طبعا في ما عدا الصفر و الواحد
و بما أنك تريد عمل هذا لـ 10 أعداد في مصفوفة فعليك عمل هذا كله في for loop
هذه الطريقة التي أعرفها و ربما هناك طريقة أبسط الله أعلم
بالتوفيق ..
تم تعديل هذه المشاركة بواسطة TheUnknown في 12 مارس 2011 في 15:08
كلما أدبني الدهر ... أراني نقص عقلي
كلما أزددت علما ... زادني علما بجهلي
you can use the Trial division algorithm and i think it is the most popular algorithm used to test primality of an integer
chk_primality(int num) {
for x = 2 to root(num) {
if num%x = 0 return FALSE
}
return Truethis not the code but u can understand what i mean and write your own code
the idea is to test if a given number is divisible by any number from 2 to the root the it and if true then it is not an prime number
else it is a prime number
one extra point i wanna say
the Trial division is not for primality test only it is an algorith mwhich used to check if integer X divisible by any integer greater that one but less than X
but for simplicity and efficiency we only test from one to the root of the number
and sorry for my english xD
one extra point for efficiency
u can escape all even number except 2
cuz if an number X is divisable by any even number then it is divisible by 2
reduce the numbers space
so you increase the efficiency of your function
طال الانتظار كتب:اتفضل اخ احمد
#inclode<iostream.h> void main(){ int a[9]; cout<<"enter the number"<<endl; for(int i=0;i<n;i++) cin>>a; for(int i=0;i<n;i++) if(a%2==1) cout<<a<<endl; }
شكرا الك اخي طال الانتظار بس في عندي ملاحظه :
1-يوجد عند تنفيذ البرنامج خطئين عند cinn و cout بضل يعطيني عليهم غلط مش عارف ليش ومع ذلك شكرا الك
TheUnknown كتب:عليكم السلام و رحمة الله و بركاته
لمعرفة ما إذا كان العدد أولي أم لا يمكنك إستخدام الطريقة التالية
العدد الأولي هو العدد الذي لا يقبل القسمة إلا على نفسه و الواحد
فهو لا يقبل القسمة على الأعداد من 2 إلى العدد الذي ينقصه بواحد
لكن لتبسيط الأعداد نقوم بالتالي(خصوصا للأعداد الكبيرة)
أولا تأخذ الجذر التربيعي للعدد (يجب أن يكون عدد موجب)
و بعدها تقوم بعمل for loop من 2 إلى الجذر التربيعي للعدد
إذا قبل القسمة على أحد هذه الأرقام فهو ليس عدد أولي و إذا أكمل و لم يقبل القسمة على أي من هذه الأعداد (من 2 إلى الجذر التربيعي) فهو عدد أولي و يقوم بطباعته
طبعا في ما عدا الصفر و الواحد
و بما أنك تريد عمل هذا لـ 10 أعداد في مصفوفة فعليك عمل هذا كله في for loop
هذه الطريقة التي أعرفها و ربما هناك طريقة أبسط الله أعلم
بالتوفيق ..
شكرال الك على هذه المعلومات
IaM Hesham كتب:you can use the Trial division algorithm and i think it is the most popular algorithm used to test primality of an integer
chk_primality(int num) { for x = 2 to root(num) { if num%x = 0 return FALSE } return Truethis not the code but u can understand what i mean and write your own code
the idea is to test if a given number is divisible by any number from 2 to the root the it and if true then it is not an prime number
else it is a prime number
one extra point i wanna say
the Trial division is not for primality test only it is an algorith mwhich used to check if integer X divisible by any integer greater that one but less than X
but for simplicity and efficiency we only test from one to the root of the number
and sorry for my english xD
one extra point for efficiency
u can escape all even number except 2
cuz if an number X is divisable by any even number then it is divisible by 2
reduce the numbers space
so you increase the efficiency of your function
شكرا الك على مجهودك
then the worst case in here is ((root(x)/2)
i think it is right but if there is any wrong with my replay plz till me
xD
تم تعديل هذه المشاركة بواسطة IaM Hesham في 12 مارس 2011 في 16:17
Ahmad Alkaraki كتب:شكرا الك اخي طال الانتظار بس في عندي ملاحظه :
1-يوجد عند تنفيذ البرنامج خطئين عند cinn و cout بضل يعطيني عليهم غلط مش عارف ليش ومع ذلك شكرا الك
يجب عليك إزالة الـ n و وضع 10 مكانها
أو أن تقوم بتعريفها و تضع لها قيمة 10
و معلومة ثانية
الكود السابق يقوم بطباعة الأرقام الفردية (الأرقام الأولية كلها فردية و لكن الأرقام الفردية ليست كلها أولية كـ 9 , 15 , 21 كلها أرقام فردية و لكن ليست أولية)
بالتوفيق ..
كلما أدبني الدهر ... أراني نقص عقلي
كلما أزددت علما ... زادني علما بجهلي
/*
* test.cpp
*
* Created on: ١٣/٠٣/٢٠١١
* Author: oracle_java
*/
#include <iostream>
using std::cout;
using std::endl;
bool isPrime(const int& num) {
if (num == 1 || num == 3 || num == 5) {
return true;
}
int i;
for (i = 2; i < 6; ++i) {
if ((num % i) == 0)
return false;
}
return true;
}
int main(int argc, char* argv[]) {
for (int i = 0; i <= 200; ++i) {
if (isPrime(i))
cout << i << ' ';
}
return EXIT_SUCCESS;
}تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 13 مارس 2011 في 13:25
﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾
الأنفال ۳۳