本程序利用C语言编写,旨在判断给定整数是否为素数,并进一步完成非素数的完全因子分解,展示每个数的质因数及其对应的幂次。
以下是判断一个数是否为素数的C语言代码:
```c
#include
int main() {
int n, i, k = 2;
printf(\n请输入一个大于“2”的数:);
scanf(%d, &n);
while (n <= 1) {
printf(亲,您输入的这个数字少于“2”,请重新输入一个大于等于“2”的数:);
scanf(%d, &n);
}
i = 2;
while (i <= n) {
if (n % i == 0)
break;
i++;
}
if (n == i)
printf(\n%d是一个素数!\n, n);
return 0;
}
```
请注意,这段代码中有一个逻辑错误。在判断是否为素数时,应该从2开始检查到`sqrt(n)`而不是直接到`n`。正确的做法是:
```c
#include
#include
int main() {
int n, i;
printf(\n请输入一个大于“2”的数:);
scanf(%d, &n);
while (n <= 1) {
printf(亲,您输入的这个数字少于“2”,请重新输入一个大于等于“2”的数:);
scanf(%d, &n);
}
i = 2;
while(i <= sqrt(n)) {
if (n % i == 0)
break;
i++;
}
if (i > sqrt(n))
printf(\n%d是一个素数!\n, n);
return 0;
}
```
这段代码使用`sqrt()`函数来优化检查过程,只检查到平方根为止。