我在C语言中编写了一个简单的for循环,以查找输入的数字是否为质数。运行时,即使输入简单的值(例如7、13等),程序也只是坐在上面,似乎正在处理巨大的东西。我有一台i53340M,因此处理能力确实不是问题。在所有内核上,CPU使用率猛增25%,即使等待了几分钟,我也看不到任何结果。当然,现代处理器并不慢,而C则非常快,比Python快得多,Python本身却非常迅速地检查素数。
在我看来,我做了一些愚蠢的事情,并没有使代码优化或肿。请看看并告诉我我哪里出了错:
int num,i,chk = 0 ;
printf("\nEnter positive integer to check : ");
scanf("%d", &num);
for (i = 2; i = num / 2; i++)
{
if (num%i == 0)
{
break;
chk = 1;
}
}
if(num == 1)
printf("\n\n1 is neither prime not composite.\n");
else if(chk == 1)
printf("\n\nThe number %d is indeed prime.\n", num);
else
("\n\nThe number %d is not actually prime.\n", num);
i = num / 2
将num / 2
分配给i
,并评估为“ true”以继续for
循环。您可能打算使用i <= num / 2
。