PDA

نسخه کامل مشاهده نسخه کامل : برنامه نویسی c++



Dwarf
05-03-2012, 23:19
سلام به همه
میخاستم یه الگوریتم بنویسم که یه عدد بگیره و مشخص کنه اون عدد اول یا نه؟؟
ممنون میشم کمک کنین

davy jones
06-03-2012, 09:42
سلام به همه
میخاستم یه الگوریتم بنویسم که یه عدد بگیره و مشخص کنه اون عدد اول یا نه؟؟
ممنون میشم کمک کنین
سلام.

تاپیک زیر رو ببینین شاید به دردتون خورد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

=====================
علاوه بر راهی که در تاپیک مذکور بهش اشاره شده، میتونین از قضیه ی هم نهشتی ویلسون هم استفاده کنین. این قضیه میگه:

عدد p اول است اگر و تنها اگر حاصل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] بر خود عدد p بخشپذیر باشد. (منظور از ! همون فاکتوریل هستش)
البته این روش محاسبات طولانی تری نسبت به قبلی داره ولی گفتم شاید به دردتون بخوره.

موفق باشین.
90/12/16

Life24
19-03-2012, 20:26
سلام.

تاپیک زیر رو ببینین شاید به دردتون خورد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

=====================
علاوه بر راهی که در تاپیک مذکور بهش اشاره شده، میتونین از قضیه ی هم نهشتی ویلسون هم استفاده کنین. این قضیه میگه:

عدد p اول است اگر و تنها اگر حاصل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] بر خود عدد p بخشپذیر باشد. (منظور از ! همون فاکتوریل هستش)
البته این روش محاسبات طولانی تری نسبت به قبلی داره ولی گفتم شاید به دردتون بخوره.

موفق باشین.
90/12/16


#include <iostream>
using namespace std;
int main ()
{
int n,c=0;
cin>>n;
for (int i=1;i<=n;i++)
{
if (n%i==0)
c++;
}
if (c>2)
{
cout<<"No\n";
else
cout<<"Yes \n";
}
system("pause");
return 0;
}

خدمت شما:11:

mafaman2003
20-03-2012, 04:09
#include <iostream>
using namespace std;
int main ()
{
int n,c=0;
cin>>n;
for (int i=1;i<=n;i++)
{
if (n%i==0)
c++;
}
if (c>2)
{
cout<<"No\n";
else
cout<<"Yes \n";
}
system("pause");
return 0;
}


کد بالا رو میشه بهینه تر کرد:
از اونجایی که اعداد زوج بزرگتر از 2 همه غیراول هستند
پس اول کار چک میشه که اگر عدد برابر 2 بود اوله
اگر نه چک بشه که زوج هست یا نه، اگر بود اول نیست
اگر زوج نبود اون موقع از 1 تا n+1/2 (تقریبا نصف،
در این قسمت چون عدد فرد مورد نظر است یکی اضافه میکنیم
تا در نتیجه نصف عدد، صحیح باشه) رو برای عمل تقسیم(باقیمانده)
استفاده میکنیم چون در محدوده n+1/2 تا n مقسوم الیه وجود نداره .
البته در این صورت در شرط آخر عدد c باید با 1 مقایسه بشه.
کد کامل رو میزارم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

S3Reuis
06-12-2012, 12:43
این برنامه واسه فهمیدن اول یا نبودن اونه (با استفاده از تابع)

#include <iostream>
#include <conio.h>


using namespace std;


void prime (int);
int main()
{
int a;
cout<<"Enter an integer number.";
cin>>a;
prime (a);
getch();
return (0);
}
void prime (int a)
{
int b;
if(a<=0)
cout<<"This number is invalid.";
if(a==1)
cout<<"This number is not prime & multiplex.";
if(a==2)
cout<<"This number is prime.";
for(b=2;b<a;b++)
{
if(a%b==0)
{
cout<<"This number is multiplex.";
break;
}
else
if(b==a-1)
cout<<"This number is prime.";
}
}