使用Java求一个自然数含有2因数多少个?

来源:百度知道 编辑:UC知道 时间:2024/06/14 13:37:49
比如:20这个自然数``它的计算`2*2*5=20`其中含有两个因数2``写一个Java能求任何一个自然数的因数2为多少个```当然`含有因数2的只有`能被2整除的自然数``
`
` ``谢谢 `写的详细一点`注释` `/*

class test
{
public static void main(String args[])
{
int num = 20,sum = 0;
while(num%2 == 0)
{
num = num / 2;
sum++;
}
System.out.println(sum);
}
}

public class Naturalnumber {
static int count = 0;
public static void main(String[] args) {
int a = Naturalnumber.getFactorNum(2, 8);
System.out.println(a);
}
/**
*
* @param fac 因数
* @param target 目标数
* @return 返回因数个数
*/
public static int getFactorNum(int fac,int target){
int temp = 0;
//判断是否能被2整除
if(target % 2 == 0){
count ++;//计数器
temp = target/2;//把target除以2,然后递归调用一直到除尽为止
getFactorNum(fac,temp);
}
return count;
}
}