C++ C++;:算法输出错误(适用于java)

C++ C++;:算法输出错误(适用于java),c++,methods,C++,Methods,有人能帮我写代码吗?我尝试使用不同的算法,但它返回到大数字,当我使用介于/**/之间的算法时,它工作得非常完美,任何人都可以看到我的新代码有什么问题?(与java works相同) int*czynnikiPierwsze(int n)抛出(字符串){ if(n2){ n=n/tab[n-2]; b++; } dzielniki=新的整数[b](); int j=0; 而(n>2){ dzielniki[j]=表[n-2]; n=n/tab[n-2]; j++; } /*int a=n; int

有人能帮我写代码吗?我尝试使用不同的算法,但它返回到大数字,当我使用介于/**/之间的算法时,它工作得非常完美,任何人都可以看到我的新代码有什么问题?(与java works相同)

int*czynnikiPierwsze(int n)抛出(字符串){
if(n2){
n=n/tab[n-2];
b++;
}
dzielniki=新的整数[b]();
int j=0;
而(n>2){
dzielniki[j]=表[n-2];
n=n/tab[n-2];
j++;
}
/*int a=n;
int*dzielniki=新int[30]();
对于(int j=0;j2){
dzielniki[j]=表[n-2];
n=n/tab[n-2];
打破
}
}*/
返回dzielniki;
}

第二个
而(n>2)
循环也不可能运行一次,因为第一个循环只有在相同条件不再成立时才会退出。

不是这样,在添加a=n并在第二个循环中使用一个后,它仍然不起作用。在不知道算法应该做什么的情况下,我们无法给出答案。
   int* czynnikiPierwsze(int n)throw (string){
        if(n<0){
            string wyjatek1="Nie mozna rozlozyc ujemnej liczby";
            throw wyjatek1;
            }
        int b=0;
        while(n>2){
            n=n/tab[n-2];
            b++;
        }
    dzielniki=new int[b]();
    int j=0;
        while(n>2){
            dzielniki[j]=tab[n-2];
            n=n/tab[n-2];
            j++;
        }
      /*  int a=n;
        int*dzielniki=new int[30]();
        for(int j=0;j<n+a;j++){
            while(n>2){
            dzielniki[j]=tab[n-2];
            n=n/tab[n-2];
            break;
            }
        }*/
        return dzielniki;
        }