【发布时间】:2014-04-09 08:10:18
【问题描述】:
您好,我正在尝试将此代码转换为 TI-BASIC。我在如何将 for 循环更改为 while 循环以及在 TI-BASIC 中增加数字时遇到问题。
#include <stdio.h>
int main()
{
int n, i, flag=0;
printf("Enter a positive integer: ");
scanf("%d",&n);
for(i=2;i<=n/2;++i)
{
if(n%i==0)
{
flag=1;
break;
}
}
if (flag==0)
printf("%d is a prime number.",n);
else
printf("%d is not a prime number.",n);
return 0;
}
【问题讨论】:
-
您对
i的循环只需要转到sqrt(n),而不是n/2。该程序是Sieve of Eratosthenes的实现。 -
似乎之前没有提到过,因此:TI 计算器(至少在 OS 版本 3.10 中)有一个 isPrime() 函数正是这样做的。因此,除非出于教育目的,否则手动实施它是没有意义的;)