PDA

View Full Version : سوال: برنامه ی تشخیص اعداد اول



air.hacker
شنبه 15 فروردین 1388, 11:10 صبح
سوال اینه که برنامه ای بنویسید که هر بار عددی رو بگیره و بگه اوله یا نه و این عمل تا هنگامی که عدد وارد شده مثبت باشد ادامه یابد
من برای اینکه نشون بدم عدد وارده اوله یا خیر سورس زیر رو تهیه کردم
حالا تو گذاشتن حلقش مشکل دارم
میخوام این تویه حلقه باشه که وقتی عدد وارد شده مثبت باشه همینطور پی در پی برنامه اجراشه و وقتی عددی غیر مثبت بود به اجرای برنامه خاتمه بده
با سپاس

#include<stdio.h>
#include<conio.h>
void main()
{
int n,i,c=0;
clrscr();
printf("enter the number:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(n%i==0)
{
c=c+1;
}
}
if(c==2)
printf("number is prime");
else
printf("number is not prime");
getch();
}[/quote]

lizbazar
شنبه 15 فروردین 1388, 23:32 عصر
منظورتون همین حلقه بود دیگه ؟!؟!!؟


while (1) {
printf("enter the number:");
scanf("%d",&n);
if (n<0) break;
for(i=1;i<=n;i++)
{
if(n%i==0)
{
c=c+1;
}
}
if(c==2)
printf("number is prime");
else
printf("number is not prime");
}

pesar irooni
سه شنبه 18 فروردین 1388, 14:29 عصر
با سلام
بهتره در حلقه for به جای n از جذر n استفاده کنی تا مرتبه اجرایی برنامه ات به شدت کم بشه و سریعتر اجرا بشه. استفاده از حلقه شمارشی از 1 تا خود n واقعا منسوخ شده. چون زمانی که به عددی بزرگتر جذر n برسیم و در خودش ضرب کنیم عددی بیشتر از n بدست میاد که مورد نظر ما نیست. در اصل اعدادی که بزرگتر از جذر n هستند و نوبت آنها در حلقه رسیده قبلا با اعداد پایینتر چک شده. مثلا وقتی i=2 باشه و بخش پذیر نباشه دیگه نیازی به چک کردن n/2 نیست.

hossein71
جمعه 21 فروردین 1388, 08:45 صبح
دوست عزیز من که درست حرفتو متوجه نشدم اما خودم یه برنامه برای تشخیص اعداد اول نوشتم،امیدوارم به دردت بخوره.(این برنامه سه تا عدد رو میگیره و در خروجی مشخص می کنه که این اعداد اول هستند یا نه)



#include<iostream.h>
#include <conio.h>
int main()
{
int i1=1,i2=1,i3=1,p1=0,p2=0,p3=0,a,b,c,mod1,mod2,mod3 ;
cout<<"Please enter three numbers:";
cin>>a>>b>>c;

while(i1<=a){
mod1=a%i1;
if(mod1==0)
p1=p1+1;
i1++;

}

while(i2<=b){
mod2=b%i2;
if(mod2==0)
p2=p2+1;
i2++;

}

while(i3<=c){
mod3=c%i3;
if(mod3==0)
p3=p3+1;
i3++;

}
if(p1==2)
cout<<a<<" :"<<" aval ast!"<<endl;
else
cout<<a<<" :"<<" aval nist!"<<endl;

if(p2==2)
cout<<b<<" :"<<" aval ast!"<<endl;
else
cout<<b<<" :"<<" aval nist!"<<endl;

if(p3==2)
cout<<c<<" :"<<" aval ast!"<<endl;
else
cout<<c<<" :"<<" aval nist!"<<endl;

getch();
return 0;
}

sab2020
سه شنبه 11 فروردین 1394, 11:40 صبح
چجوری میشه با while نشون داد که عدد ورودی اول هست یا نه ؟