C语言分解质因数PTA
时间: 2023-11-23 18:57:04 浏览: 112
以下是C语言分解质因数的代码实现和解释:
```c
#include <stdio.h>
#include <math.h>
// 判断一个数是否为质数
int isPrime(int n) {
int flag = 1;
int i;
for(i=2; i<=sqrt(n); i++){
if(n % i == 0) {
flag = 0;
break;
}
}
return flag;
}
int main() {
int n, temp_n;
int i, j;
scanf("%d", &n);
temp_n = n;
i = 2;
printf("%d=",n);
while(1){
if(isPrime(i) && (temp_n % i == 0)) {
temp_n /= i;
if(temp_n == 1) {
printf("%d\n", i);
break;
}else printf("%d*",i);
}else i++;
}
return 0;
}
```
代码解释:
1. 首先定义了一个函数`isPrime`,用于判断一个数是否为质数。该函数的输入参数为一个整数n,返回值为1表示n是质数,返回值为0表示n不是质数。
2. 在主函数中,首先读入一个整数n,然后定义一个变量`temp_n`,用于记录n的值。接着定义两个变量i和j,其中i用于从2开始逐个判断是否为质数,j用于记录n的分解质因数。
3. 在循环中,首先判断i是否为质数,如果是,则判断n是否能被i整除。如果能被整除,则将n除以i,同时将i作为一个质因数记录在j中。如果此时n已经被分解完毕,则输出j中记录的质因数,否则继续循环。
4. 由于每次循环都会将i加1,因此当i大于n时,循环结束。
阅读全文