题目描述
编写一个程序,求一个自然数中含有多少个2的因子。如,6含1个2的因子,8含3个2的因子,11不含2的因子
输入格式
输入共一行,一个整数x
输出格式
输出共一行,一个整数num,代表x中包含2的个数。
输入输出样例
输入 #1 复制
6
输出 #1 复制
1
输入 #2 复制
8
输出 #2 复制
3
输入 #3 复制
11
输出 #3 复制
0
说明/提示
1≤x≤10 18
#include<iostream>
#include<math.h>
using namespace std;
int main(){
long long n,count=0;
cin>>n;
while(true){
if(n % 2 == 0){
n /= 2;
count++;
}
else
break;
}
cout<<count;
return 0;
}
Java题解:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long num;
num = scanner.nextLong();
int count = 0;
while(true){
if(num % 2 == 0){
count++;
num /= 2;
}
else
break;
}
System.out.println(count);
}
}