C 不超时

#include "stdio.h"
#include "string.h"

int main(void)
{
    int num=0;
    scanf("%ld",&num);
    int buf[100]={0};
    int count=0;
    int data=2;
    while(num!=1)
    {
        if((num%data)==0)
        {
            num/=data;
            buf[count++]=data;
            data=2;
        }
        else{
            if(data==2)
                data++;
            else
                data+=2;
        }
    }
    for(int i=0;i<count;i++)
    {
        printf("%d ",buf[i]);
    }
    return 0;
}