如何用MIPS建立素数表(小于2^16)

问题遇到的现象和发生背景 参考下页C代码,编写函数CreatePrimes(PN),存储从3开始到小于2^16的所有素数到素数表prime,并输出相关信息。表中数值以半字存储。素数个数通过寄存器$a0传出。
问题相关代码,请勿粘贴截图
运行结果及报错内容

#include <iostream> 
using namespace std;
unsigned short prime[7000]={3};
int main(void)
{
      int i,j,k;
      for(i=5,j=1;i<65536;i+=2)
    {
        for(k=3;k*k<=i;k+=2)if(i%k==0)break;
        if(k*k>i)prime[j++]=i;
    }
    cout<<j<<" primes created. The last 10 primes is:\n";
    for(i=j-10;i<j;i++)cout<<prime[i]<<" ";
    cout<<"\n";
    return 0; 
}


我的解答思路和尝试过的方法 尝试失败 无头绪 rem求余得不到余数 例如9余3得3

我想要达到的结果

img

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^