java 写一个函数,接受一个整数 n,输出这个整数的所有因子
时间: 2023-03-11 22:17:41 浏览: 206
答案:public static List<Integer> getFactors(int n) {
List<Integer> factors = new ArrayList<>();
for (int i = 1; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
if (n / i == i) {
factors.add(i);
} else {
factors.add(i);
factors.add(n / i);
}
}
}
return factors;
}
相关问题
设计一个函数输出整数n的所有素数因子
以下是一个输出整数n的所有素数因子的函数:
def prime_factors(n):
factors = []
i = 2
while i * i <= n:
if n % i:
i += 1
else:
n //= i
factors.append(i)
if n > 1:
factors.append(n)
return factors
该函数使用了质因数分解的方法,从2开始逐个检查n是否能被整除,如果能被整除,则将该因子加入到factors列表中,并将n除以该因子,继续检查。如果n不能被i整除,则i加1,继续检查。最后,如果n大于1,则说明n本身也是一个素数因子,将其加入到factors列表中。最后返回factors列表即可。
C语言,设计一个函数,输出整数n的所有素数因子
好的,以下是实现该功能的C语言函数:
```c
#include <stdio.h>
void primeFactors(int n) {
int i, j, isPrime;
for (i = 2; i <= n; i++) {
if (n % i == 0) {
isPrime = 1;
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime == 1) {
printf("%d ", i);
}
}
}
printf("\n");
}
```
该函数接受一个整数参数n,然后输出n的所有素数因子。函数实现的思路是从2到n进行遍历,检查每个数是否可以整除n。如果可以整除,再判断该数是否为素数,如果是素数就输出。最终输出所有的素数因子。