其实只要循环之后每次判断一下是不是质数就可以过关了,这个测试用例大多是分散的比较开的式子

#include <stdio.h>

#include<math.h>

int isprime(int num);

int main() {

int number;
scanf("%d", &number);
if(isprime(number) == 1){
   printf("%d", number);
   return 0;
   }
for (int i=2; i<=number/2; i++) {
    while (number%i == 0) {
        printf("%d ", i);
        number /= i;
        if(isprime(number) == 1){
            printf("%d", number);
            return 0;
        }
    }
}
return 0;

} int isprime(int num){

    if (num <= 3) {
    return num > 1;
}
if (num % 6 != 1 && num % 6 != 5) {
    return 0;
}
int sqr = (int)sqrt(num);
for (int i = 5; i <= sqr; i += 6) {
    if (num % i == 0 || num % (i + 2) == 0) {
        return 0;
    }
}
return 1;

}