我写了一个小程序来检查我的号码是否是素数。 我认为代码工作正常,但我希望代码给我一个输出:如果它是素数或者不是。
我试图在Google上找到它,但找不到答案。
<mx:Image source="assets/logo.png" horizontalAlign="center" verticalAlign="middle"></mx:Image>
答案 0 :(得分:1)
使用布尔值并将其设置为true
。
当您找到一个不同输入的数字时,请将值设置为false
和break
循环。
最后测试你的布尔值: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,如果有人为零,则其为非素数,否则为其素数