C减少输出

时间:2017-01-19 20:40:26

标签: c

我写了一个小程序来检查我的号码是否是素数。 我认为代码工作正常,但我希望代码给我一个输出:如果它是素数或者不是。

我试图在Google上找到它,但找不到答案。

<mx:Image source="assets/logo.png" horizontalAlign="center" verticalAlign="middle"></mx:Image>

3 个答案:

答案 0 :(得分:1)

使用布尔值并将其设置为true

当您找到一个不同输入的数字时,请将值设置为falsebreak循环。

最后测试你的布尔值:true -> printf("Ja\n"); false -> printf("Nein\n");

答案 1 :(得分:0)

不,代码不能正常工作 输入数字9,8,9作为输入,程序将报告
扎尔:9

扎尔:8
假2
扎尔:9
假3
扎尔:

为了改进,你应该为while循环的每次迭代初始化b1布尔值为true(如果你希望程序只检查一个数字,则删除while循环)。

然后,进行检查

if(z_eingabe%z1==0)

对于z1的所有值,然后得出您有素数的结论。

以下是更正后的代码:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int main()
{
int z1,z_eingabe;
bool b1;

while(1){
b1=true;


printf("Zahl : ");
scanf("%d",&z_eingabe);

for(z1=2;z1<z_eingabe;z1++){
    if(z_eingabe%z1==0){
        printf("False %d\n",z1);
        b1=false;
        break;
     }
}
if(b1==true){
        printf("True\n");
}

}

    return 0;
}

答案 2 :(得分:0)

如果你想要一个算法,如果你想检查一个数字是素数,你必须将它除以该数字的平方根的素数,如果它不能被它们整除,则该数字是素数。

对于N,将它除以1到sqrt(N)之间的素数,检查所有这些除法的余数是否为0,如果有人为零,则其为非素数,否则为其素数