برنامه عدد اول با سی پلاس

سلام
می خواستم ببینید مشکل این برنامه چیه

کد:
#include <stdio.h>
#include <conio.h>
void main()
{
    float a,bb,cc,dd,ee;
    int b,c,d,e;
    printf("Enter Number : ");
    scanf("%f",&a);
    bb=a/2;
    cc=a/3;
    dd=a/5;
    ee=a/7;
    b=bb;
    c=cc;
    d=dd;
    e=ee;
    if (b==bb or c==cc or d==dd or e==ee){
        printf("Not First");
    }
    else
    {
        printf("First");
    }

    getch();
}
 

the_king

مدیرکل انجمن
برنامه تان را ویرایش کردم.

مورد اول
برای محاسبات اعداد اول از متغیر های فاقد اعشار مانند int استفاده کنید. محاسبات اعشاری به دلیل ماهیت تقریبی شان
همواره یک خطای جزئی در ممیز شناور خواهند داشت که روی نتایج تاثیر منفی دارد.

مورد دوم
الگوریتم تان را محدود به اعداد اول 2 الی 7 نمودید، این الگوریتم برای اعداد بزرگتری مانند 121 نتایج درستی نخواهد داشت.
بهتر است که برای بررسی اینگونه موارد از حلقه for استفاده کنید.

مورد سوم
برای بررسی بخشپذیر بودن یک عدد بر عددی دیگر از عملگر % (باقیمانده) استفاده کنید تا نیازی به متغیر های اعشاری
و کد های اضافه نباشد. اگر عددی بر عدد دیگری بخشپذیر باشد، باقیمانده تقسیم آنها صفر خواهد بود.

مورد چهارم
عملگر or منطقی در زبان c و ++c به شکل || تعریف شده است، کامپایلر or را نمی شناسد.
همچنین برای عملگر های منطقی متوالی حتما از پارانتز ها برای مشخص کردن دو عملوند استفاده کنید وگرنه کامپایلر
در تشخیص دو عملوند با مشکل مواجه می شود.

کد:
#include <stdio.h>
#include <conio.h>
void main()
{
    int a,i;
    printf("\nEnter Number : ");
    scanf("%d",&a);
    for (i=2;a>i;i++)
        if (a%i==0)
            break;
    if (i==a)
        printf("Prime");
    else
        printf("Not Prime");
    getch();
}
 

جدیدترین ارسال ها

بالا