【问题标题】:I wrote a C function to detemine whether a number is prime but it isn't working我编写了一个 C 函数来确定一个数字是否为素数,但它不起作用
【发布时间】:2018-07-08 21:58:16
【问题描述】:
printf("enter number:");
scanf("%d",&number);

for(i=2;i<number;i++){      
    if(number%i==0)
        printf("your number isn't prime\n");
    else 
        printf("your number is prime\n");
}

我写了这段代码。代码运行,但如果我输入 10,它会打印很多次,它不是素数。

【问题讨论】:

  • 你能解释一下“asal”是什么意思吗?而且,您正在从用户那里获得号码,但会进一步使用它。这是故意的吗?
  • Asal 的意思是质数。我认为问题就在那里。我想知道一个数字是否是质数,但它输入了不止一次。我该如何解决这个问题。我想写一次你的计数是否为质数,但这段代码写的更多。
  • 一旦你知道这个数不是素数,break循环。如果i==sayi,则仅报告该数字在循环之后是素数。
  • 它正在工作,感谢您的帮助。
  • 萨伊的意思是数字。这是土耳其语。

标签: c primes


【解决方案1】:

提示 1:尝试使用标志(但代码会变得更长,这是不必要的!) 提示 2:只需在您的第一个 printf 之后添加一个 break 语句;)

【讨论】:

  • 我真的很抱歉。我修复了这个代码,我很兴奋,因为我是新开发人员。我很抱歉
【解决方案2】:

正如 DyZ 在评论中提到的,一旦你知道这个数字不是质数,你应该打破循环,并且只在循环之后报告这个数字是质数。

此外,您不必检查已检查除数的倍数。如果您的数字不能被 2 整除,则它不能被 2 的任何倍数整除,例如 4、6、8 等等。

另外,请查看prime numbers上已回答的问题

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2015-01-22
    • 2014-12-14
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多