对于整数N,找质因子,首先在[2,N的平方]内找质因子,若 N 除以这些质因子后的商仍然大于1,那么这个商不做处理,直接作为N的最后一个质因子。

#include <stdio.h>
int main ()
{
    int a;
    int i;
    int N=10000000000;
    while (scanf("%d",&a)>0)
    {
        for (i=2;i*i<=N;i++)//对于整数N,找质因子,首先在[2,N的平方]内找质因子,若 N 除以这些质因子后的商仍然大于1,那么这个商不做处理,直接作为N的最后一个质因子。
        {
            while (a%i==0)
            {
                printf("%d ",i);
                a=a/i;
            }
        }
        if (a!=1)
        printf("%d ",a);
    }
}