在 C 中查找质数的 for 循环问题,Visual Studio
Issues in for loop for finding Prime number in C, Visual Studio
我用 C 写了一个简单的 for 循环来判断输入的数字是否是质数。在 运行 上,即使输入简单的值,如 7、13 等,程序也只是停滞不前,似乎正在处理一些巨大的事情。我有一个 i53340M,所以处理能力真的不是问题。 CPU 所有内核的使用率都飙升至 25%,即使等待几分钟后我也看不到任何结果。当然,现代处理器并不慢,C 非常快,比 Python 快得多,它本身就是非常快速地检查素数的 cabale。
在我看来,我做了一些愚蠢的事情,让代码没有优化或臃肿。请看一看并告诉我哪里出错了:
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
并评估为“真”以继续 for
循环。 (当 n
大于 1 时)。您可能有意 i <= num / 2
.
我用 C 写了一个简单的 for 循环来判断输入的数字是否是质数。在 运行 上,即使输入简单的值,如 7、13 等,程序也只是停滞不前,似乎正在处理一些巨大的事情。我有一个 i53340M,所以处理能力真的不是问题。 CPU 所有内核的使用率都飙升至 25%,即使等待几分钟后我也看不到任何结果。当然,现代处理器并不慢,C 非常快,比 Python 快得多,它本身就是非常快速地检查素数的 cabale。
在我看来,我做了一些愚蠢的事情,让代码没有优化或臃肿。请看一看并告诉我哪里出错了:
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
并评估为“真”以继续 for
循环。 (当 n
大于 1 时)。您可能有意 i <= num / 2
.