素数的逻辑错误

时间:2014-01-18 22:13:25

标签: logic primes

我试图将一个程序重写成一个函数,用于查找数字是否为素数。 目前我只是输出1或2只是为了测试目的。

问题是无论输入什么数字,p = 1。

感谢有识之士。

# include <stdio.h>

int is_prime(int num);

int main()
{
        int num, pr=0;


        printf("Enter a positive number: ");
        scanf("%d", &num);

        printf("prime is %d ",is_prime(pr));
        return 0;
}

int is_prime(int n )
{
        int p, i, count=0;


        for (i=2; i<=n/2; i++)
        {
                if(n%i==0)
                {
                        count++;
                        break;
                }
        }
        if (count==0 && n!=1)
                p=1;
        else
                p=2;
        return p;
}

1 个答案:

答案 0 :(得分:3)

  1. 您的函数名称错误(is_primei而非is_prime)。
  2. 您总是将0传递给函数(具体为pr),而不是输入值num