Javascript将一个大数拆分为素数数组

Javascript将一个大数拆分为素数数组,javascript,arrays,split,numbers,Javascript,Arrays,Split,Numbers,我有一个奇怪的问题,什么是javascript的最佳方式,从大量开始 var LargeNumber = 5234223; 分成一个数组 var SingleNumberArray = []; 但有一些限制: 我不希望数组中的任何数字都大于X 出于这个原因,我不想用同一个号码多次使用soo 我不想把MaxValueNaray soo推很多次 var MaxValueInArray=43 为了使所有数组的总和都是最大数 乍一看,我认为这可能是有用的使用素数,但也许这是一个限制。因此,更好的方法

我有一个奇怪的问题,什么是javascript的最佳方式,从大量开始

var LargeNumber = 5234223;
分成一个数组

var SingleNumberArray = [];
但有一些限制:

  • 我不希望数组中的任何数字都大于X
  • 出于这个原因,我不想用同一个号码多次使用soo 我不想把MaxValueNaray soo推很多次

    var MaxValueInArray=43

  • 为了使所有数组的总和都是最大数

    乍一看,我认为这可能是有用的使用素数,但也许这是一个限制。因此,更好的方法可能是创建一个从1到MaxValueArray的随机函数,每个循环生成一个数字,然后在将其推入数组之前检查总和是否为起始数字,如果不按下数字并重新启动,直到数组的总和与起始数字相同,但在这一点上,我认为最好是检查还有多少剩余,以拥有正确的匹配。因此,如果保持小于MaxValueInArray,我可以直接推送保持的值

    问题是我不知道如何写下这个函数


    顺便说一句,你有更好的办法吗?

    小心点,这可能会对计算计划造成很大影响

    每个数字在0和您设置的数字之间是随机的

    var LargeNumber=5234223;
    var MaxValueInArray=43;
    var MinValueInArray=1;
    var singlenumberraray=[];
    while(LargeNumber!==0){
    设n=Math.floor(Math.random()*(MaxValueInArray-MinValueInArray+1))+MinValueInArray;
    如果(大数-n<0)继续;
    大数-=n;
    单数ray.push(n);
    }
    console.log(5234223==SingleNumberArray.reduce((i,j)=>i+j))
    
    console.log(singlenumberraray)为什么不按下MaxValueInArray直到余数小于MaxValueInArray,然后按下余数?只是因为我不想让所有的数字都进入它,也许我没有告诉你:驻留,那么想法是一样的,但是在1和MaxValueInArray之间按下一个随机数,有没有可能让随机数从1或定义的变量开始?