c - 这段代码有什么问题? (检查给定的数字是否是素数)

标签 c

#include <stdio.h>
#include <conio.h>

void main() {
    int a, n, x;
    clrscr();
    printf("enter a number");
    scanf("%d", &a);
    n > 1;
    a != n && n < a;
    if (a / n == x)
        printf("a is not a prime no");
    else
        printf("a is a prime no");
}

如果我运行这个并输入一个合数,它仍然显示为质数。

最佳答案

您的if由于n,陈述永远不会成立。和x没有初始化。因此你只能得到你的 else 作为返回。而且你的表情n>1;a != n && n < a;返回一个没有被压缩的 bool 值。在这种情况下,您需要使用 for循环。

这里是a link关于for循环

int main()
{
    int a,n,x = 0;

    printf("enter a number: ");
    scanf("%d",&a);
    for(n=2; n<=a/2; ++n)
    {
        if(a%n==0)
        {
            x=1;
            break;
        }
    }
    if (x==0)
        printf("",n);
    else
        printf("a is not a prime no");    
    return 0;
}

关于c - 这段代码有什么问题? (检查给定的数字是否是素数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38941080/

相关文章:

c - Openacc:如何使插入排序更加并行

c - printf ("%s\n") 输出不同于 printf ("%s")

c - C中互斥量的定义和使用

C 结构问题

c - 这个宏返回什么?

c - RGB888 到 RGB565/位移位

c - 值返回错误值

c - 对 _red 的 undefined reference

c - ragel如何从文件中读取源代码?

将指针转换为用于散列的数值 - 我应该使用 `uintptr_t` 还是 `intptr_t`?