输入一个正整数,将该数写成若干个素数相乘的形式,例如,10=2*5,24=2*2*2*3,结果在输出对话框显示.用V

1个回答

  • 经过我多方面的优化,函数速度非常的快,输入数据为unsigned _int64,也就是最大值为18446744073709551615.

    #include "windows.h"

    unsigned __int64 sqrt64(unsigned __int64 x)

    {

    int i=(sizeof(unsigned __int64)>i)==1)

    break;

    i--;

    }

    return (unsigned __int64)11);

    }

    int factor(unsigned __int64 x,unsigned __int64 *fac)

    {

    unsigned __int64 i=2,sqrtx=sqrt64(x);

    int flen=0;

    while(i