C语言输入一个正整数 n,输出 n 的所有质因子。例如 n=13860,则输出: 2,2,3,3,5,7,11。
时间: 2024-06-13 14:08:38 浏览: 20
以下是C语言代码,用于输入一个正整数n,输出n的所有质因子:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 输入数字
// 从 2 开始枚举质因子
for (int i = 2; i <= n; i++) {
// 如果 i 是 n 的质因子,就输出 i 并将 n 除以 i
while (n % i == 0) {
printf("%d ", i);
n /= i;
}
}
return 0;
}
```
输入一个正整数n,程序会输出n的所有质因子。例如,当n=13860时,程序会输出:2 2 3 3 5 7 11。
相关问题
从键盘输入一个正整数n,计算并得出所有因子和 c语言
下面是一个计算正整数n的因子和的C语言代码:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的因子有:", n);
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
printf("%d ", i);
sum += i;
}
}
printf("\n%d的因子和为:%d\n", n, sum);
return 0;
}
```
代码逻辑很简单,首先从键盘输入一个正整数n,然后用for循环遍历1到n的所有数,如果n能整除i,则i是n的一个因子,将i加入因子和sum中。最后输出n的因子和。
c语言输入一个正整数n找出1-n间所有完数的代码怎么写
以下是C语言实现找出1-n间所有完数的代码:
```c
#include<stdio.h>
int main() {
int n, i, j, sum;
printf("请输入一个正整数:");
scanf("%d", &n); // 输入一个正整数n
printf("1~%d间的完数有:\n", n);
for(i = 2; i <= n; i++) { // 从2开始遍历到n
sum = 0;
for(j = 1; j < i; j++) { // 遍历i的所有因子
if(i % j == 0) {
sum += j; // 把i的因子累加到sum中
}
}
if(sum == i) { // 判断sum是否等于i
printf("%d ", i); // 如果相等则输出i
}
}
printf("\n");
return 0;
}
```
如果您对此有任何疑问,请随时与我交流。