java 求一个正整数的质因数. 自己写了一个 改了好久还是出错. 求大佬帮看下

/*
将一个正整数分解质因数:
方法 :
从1开始对正整数取余,如果为零.则求出结果.继续对数取余.直至没有数可以整除.
/
import java.util.
;
public class ZhiShu
{
int g,k=0,zhengshu,i;

void zhuanhuan(int g)
{
    int a[] = new int[20];
    for (i=1; i<g; i++  )
    {
        if(g%i==0)
        {
            a[k]=i;
            k++;
            i=1;
            g=g/i;
            continue;
        }
    }   
    System.out.println("质因数为:");
    for(i=0; i<k; i++)
    {
        System.out.print("  hah "+a[k]);
    }
}

}
class Zhu
{
public static void main (String[] args)
{
Scanner out = new Scanner(System.in);
System.out.println("输入一个int型数据:");
int zhengshu= out.nextInt();
System.out.println( zhengshu );
ZhiShu t1;
t1 = new ZhiShu();
t1.zhuanhuan(zhengshu);

}

}

哥们,你这个程序问题好多,你直接拿着代码看吧
public class ZhiShu
{
int g,k=0,zhengshu,i;
void zhuanhuan(int g)
{
int a[] = new int[20];
for (i=2; i<=g; i++ )
{
if(g%i==0)
{
a[k]=i;
k++;
g=g/i;
i=1;
continue;
}
}
System.out.println("质因数为:");
for(i=0; i<k; i++)
{
if (a[i]!=0) {
System.out.print(" hah " + a[i]);
}
}
}
}

我也没时间写,其实工作中对这个没有什么实际作用,看你也是初学者,建议多看看张孝祥的书,对以后工作有很大帮助