pta答案题库答案c语言输入一个正整数,计算其所有的因子(除1和本身之外)并输出。若没有任何因子(即素数),则输出0。 输入格式: 从键盘输入一个正整数。 输出格式: 输出该数所有的因数,没有因子输出0。注意:各个因子之间空格隔开,但最后一个因子后面没有空格。
时间: 2024-12-11 20:37:19 浏览: 13
pta题库答案c语言.zip
在C语言中,你可以通过以下步骤编写一个程序来实现这个功能:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
void find_factors(int num) {
printf("%d ", num); // 输出自身
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
printf("%d ", i);
if (i != num / i) // 如果不是质数,还有一个因子是num/i
printf("%d", num / i);
}
}
// 判断是否为质数,如果是,则输出0
if (is_prime(num))
printf("0");
}
int main() {
int input_num;
printf("请输入一个正整数: ");
scanf("%d", &input_num);
find_factors(input_num);
return 0;
}
```
在这个程序中,`is_prime`函数用于检查一个数是否为素数,`find_factors`函数负责找出并打印出所有因子。用户会看到提示输入一个数字,然后程序会计算并显示它的因子,如果它是素数,则会输出0。
阅读全文