为什么这个素数的C程序是错误的?

时间:2017-03-23 16:01:08

标签: c primes

请帮忙!为什么C中的Prime数字程序不起作用?

#include<stdio.h>
#include<conio.h>
int main()
{
    int n,i;
    printf("enter the number");
    scanf("%d",&n);
    for(i=2;i<=n-1;i++)
    {
        if(n%i==0)
        printf("%d is not a prime number",n);
        else
        printf("%d is a prime number",n);

    }

    getch();
}

请回答 - 为什么这个程序不起作用?

1 个答案:

答案 0 :(得分:2)

使用标志检查数字是否可以整除?

#include<stdio.h>
#include<conio.h>
int main()

{
    int n,i,flag=0;
    printf("enter the number");
    scanf("%d",&n);
    for(i=2;i<=n-1;i++)
    {
        if(n%i==0)
        {
            flag = 1;
            break;
        }
     }

    if ( flag == 1 )
    {
        printf("%d is not a prime number",n);
    }
    else
    {
     printf("%d is a prime number",n);
    }

    getch();
}

此外,for循环:for(i=2;i<=n-1;i++)迭代超过要求。您应该设置i <= sqrt(n)