PDA

View Full Version : سوال: اشکال در اجرا تشخیص عدد اول



Faraz Mehraien
شنبه 04 آبان 1392, 17:40 عصر
با سلام .من برنامه ای به زبان c برای تشخیص عدد اول نوشتم .اما اعداد اول و تشخیص نمی ده ولی error نمیده یعنی اشکال منطقیه.از کامپایلر dev استفاده می کنم.اینم برنامم
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int a;
int b;
float r;
printf("addady vared koind\n");
scanf("%d",&a);
for( b=1;(b*b)<=a;b++)
{
r=a%b;
}
if(r==0)
printf("addad vared shode aval nist\n");
if(r!=0)

printf("addad vared shode aval ast\n");

system("PAUSE");
return 0;
}

احسان نعیمی
شنبه 04 آبان 1392, 18:15 عصر
اینو امتحان کن. موفق باشی.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int a;
int b;
int isAval=1;
float r;
printf("addady vared koind\n");
scanf("%d",&a);
for( b=2;(b*b)<=a;b++)
{
r=a%b;
if(r==0)
{
isAval=0;
break;
}

}
if (isAval==0)
printf("addad vared shode aval nist\n");
else
printf("addad vared shode aval ast\n");

system("PAUSE");
return 0;
}

Faraz Mehraien
شنبه 04 آبان 1392, 18:22 عصر
اینو امتحان کن. موفق باشی.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int a;
int b;
int isAval=1;
float r;
printf("addady vared koind\n");
scanf("%d",&a);
for( b=2;(b*b)<=a;b++)
{
r=a%b;
if(r==0)
{
isAval=0;
break;
}

}
if (isAval==0)
printf("addad vared shode aval nist\n");
else
printf("addad vared shode aval ast\n");

system("PAUSE");
return 0;
}


ببخشید جریان این متغیر isaval چیه؟

احسان نعیمی
شنبه 04 آبان 1392, 18:28 عصر
ببخشید جریان این متغیر isaval چیه؟
بهش میگن فلگ. (Flag) تعریف اینه: در صورتی که عددی وجود داشته باشه در بازه ی 2 تا مجذور عدد مورد نظر که عدد موردنظر بر آن بخش پذیر باشد پس آن عدد مورد نظر اول نیست! فلگ برای اینه که بفهمیم که آیا حلقه به طور طبیعی تمام شده است یا مقسوم علیه ای برای عدد مورد نظر پیدا کرده ایم.