首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >它是质数吗?TI-BASIC

它是质数吗?TI-BASIC
EN

Stack Overflow用户
提问于 2014-03-06 23:24:51
回答 3查看 318关注 0票数 3

嗨,我正在试着把这段代码翻译成TI-BASIC。我在如何将for循环更改为while循环以及在TI-BASIC中递增数字方面遇到了问题。

代码语言:javascript
复制
#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;
}
EN

回答 3

Stack Overflow用户

发布于 2015-04-07 03:09:55

在这种情况下,您可以有效地使用While循环:

代码语言:javascript
复制
Input "NUMBER: ",A
1->B
3->I
√(A->D
If not(fPart(A/2
DelVar BWhile I<=D and B
fPart(A/I->B
I+2->I
End
If not(B
Disp "NOT
Disp "PRIME
票数 5
EN

Stack Overflow用户

发布于 2014-11-18 08:54:00

在TI-Basic中,While循环的工作方式与您期望的一样,并且您可以为其设置条件。递增一个数字就像说

代码语言:javascript
复制
X+i->X  

其中'i‘是递增器。

要将For循环更改为While循环,您必须设置While循环来不断检查数字和增量是否已超过上限,同时每次运行时都会增加增量。

如果您想在TI-Basic中模拟i++或++i (使用While循环),那么您只需更改代码的排列即可。请注意,TI-Basic For语句始终在++i下运行。示例(i++):

代码语言:javascript
复制
0->X
While X<10
Disp X
X+1->X
End

这将显示(每个数字在一个新的行上)

代码语言:javascript
复制
0 1 2 3 4 5 6 7 8 9

示例(++i):

代码语言:javascript
复制
0->X
While X<10
X+1->X
Disp X
End

这将显示(每个数字在一个新的行上)

代码语言:javascript
复制
1 2 3 4 5 6 7 8 9 10

值得注意的是,TI-Basic For语句在递增时比While循环快得多,并且几乎总是被认为比任务更优越。

集成Timtech的跳过偶数的想法,只需增加几行额外的行,就可以有效地将检查数字的素性所需的时间减半。我扩展了这个想法,跳过2的倍数和3的倍数。

代码语言:javascript
复制
Input "Number:",X:abs(X->X
0
If not(fPart(X/2)) or not(fPart(X/3:Return
For(B,5,sqrt(X),6)
If not(fPart(X/B)) or not(fPart((X+2)/B:Return
End
1

  • 测试编号:1003001
  • 所需时间:~4秒(远优于15 :d)
  • 大小:65Bytes
票数 3
EN

Stack Overflow用户

发布于 2014-03-18 08:34:40

我不明白你为什么要像ti-basic中的for循环那样使用while循环:

代码语言:javascript
复制
0->F
Input "ENTER NUMBER:",N
For(I,2,int(N/2
If N/I=int(N/I
Then
int(N/2->I
1->F
End
End

If F
Then
Disp "NUMBER IS PRIME
Else
Disp "NUMBER IS NOT PRIME
End

N/I=int(N/I是一种检查数的余数的方法( N%I==0的另一种说法,但ti basic没有模数)。这里的另一个技巧是将i设置为它的最大界限(int(N/2),就像其他语言一样

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22228747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档