#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
char* getResult(long ulDataInput);
int main(void)
{
long int ulDataInput = 0;
scanf("%ld", &ulDataInput);
char* string = { 0 };
string = getResult(ulDataInput);
puts(string); // 打印
free(string); // 释放,防止内存泄漏
system("pause");
return 0;
}
char* getResult(long ulDataInput)
{
char* string = (char*)malloc(ulDataInput*sizeof(char));
char* s = { 0 };
int j = 0;
long int num = ulDataInput;
for (long int i = 2; i <= ulDataInput; i++) // 提取公因子
{
while (num%i == 0) // 如果取余为0,则表明i为公因子
{
num /= i;
sprintf(string + j, "%ld%c", i, ' '); // 将公因子i和‘ ’组合成字符串
j = strlen(string); // 用于修改指针
}
}
return string;
}