Điểm:
100 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Từ một số nguyên dương \(K\) ban đầu, ta thực hiện biến đổi số \(K\) theo quy tắc biến đổi sau đây:
Nếu \(K\) chia hết cho \(6\) thì thay số \(K\) bởi thương \(K:6\); còn nếu \(K\) không chia hết cho \(6\) thì thay số \(K\) bởi tích \(3 \times K\).
Yêu cầu: Hãy xác định số lần biến đổi theo quy tắc trên để \(K\) bằng \(1\). Trong trường hợp không thể biến đổi \(K\) bằng \(1\) thì in ra kết quả \(-1\).
Input
- Một dòng chứa số nguyên \(K\) (\(K \leq 10 ^ 9\)).
Output
- Số nguyên \(m\) là số lần biến đổi để \(K\) bằng \(1\).
Example
Test 1
Input
12
Output
3
Test 2
Input
10
Output
-1
Bình luận
include <bits/stdc++.h>
using namespace std;
long long k,dem=0;
int main(){
cin >> k;
if(k%10==0||(k%2==1&&k!=1)){
return cout << -1,0;
}else{
while(k!=1){
if(k%6==0){
k/=6;
}else{
k=k*3;
}
dem++;
}
}
cout << dem;
return 0;
}
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
dung while cho lẹ
Đề:
Từ một số nguyên dương K ban đầu theo quy tắc biến đổi sau đây:
Yêu cầu: Hãy xác định số lần biến dổi theo quy tắc trên để K bằng 1
Input: Nhập từ bàn phím một số nguyên dương K (K<=10^9)
Output: In ra màn hình số nguyên dương m là số lần biến đổi để số K bằng 1. Trong trường hợp không thể biến đổi K bằng 1 theo quy tắc biến đổi trên thì in ra màn hình số -1