#include #include // 函数:判断一个数是否为素数 int is_prime(int num) { if (num <= 1) return 0; // 0和1不是素数 if (num == 2) return 1; // 2是素数 if (num % 2 == 0) return 0; // 偶数不是素数 // 试除法判断是否为素数 int i; for (i = 3; i <= sqrt(num); i += 2) { if (num % i == 0) { return 0; // 能整除则不是素数 } } return 1; // 不能整除则是素数 } // 函数:分解合数,找出只出现一次的素数因子 void decompose(int num) { if (num <= 1) return; // 小于等于1的数没有素数因子 int i; // 试除法分解合数 for (i = 2; i <= num; i++) { if (num % i == 0 && is_prime(i)) { int count = 0; while (num % i == 0) { num /= i; count++; } if (count == 1) { printf("%d ", i); // 输出只出现一次的素数因子 } } } printf("\n"); } int main() { int num; scanf("%d", &num); // 分解合数并输出只出现一次的素数因子 decompose(num); return 0; }