سلام دوستان. من میخواستم برنامه ای به زبان C بنویسم که بتونه اعداد اول رو تشخیص بده. این کارو با کمی جستجو تونستم انجام بدم ولی یه مشکلی دارم و اونم اینه که واسم محدودیت به وجود اومده و او ن محدودیت هم به خاطر تابع sqrt() . l . مشکل به این صورته که وقتی مقدار آرگومان sqrt رو بیشتر از حدوداً 5 میلیون میدم برنامه قاطی میکنه error رو میده. البته برنامه رو تو توربو c اجرا میکنم. ولی همین برنامه ( با کمی تغیر تو توابع) دارم تو ویژال C اجرا میکنم error نمیده. ولی چون نمیدونیم اعدادمون کدوماش اوله تو درستی برنامم شک میکنم.
اصلاً یه نگاهی به برنامه بکنین ببینین درسته یا نه؟؟
[/left]
اصلاً یه نگاهی به برنامه بکنین ببینین درسته یا نه؟؟
کد:
[left]
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int x;
int m,i;
clrscr();
printf("plese insert your number: ");
scanf("%d",&x);
if(x==0) break;
m=sqrt(x);
for(i=2;i<=m;i++){
if(x%i==0) break;
}
if(i==m+1){
printf("add aval ast\n\n");
}else{
printf("add aval nist\n\n");
}
getch();
}





دیدگاه