Mr Bon là cậu em trai song sinh của Mr Bin. Cậu ấy cũng đang học các con số, cậu ấy tính tổng các chữ số của một số nguyên dương n cho trước được một số nguyên dương a. Tiếp đến cậu lại đi tìm chữ số lớn nhất của n và viết ghép chữ số lớn nhất đó vào sau số a thu được số nguyên dương k. Mr Bon muốn biết k có phải là số nguyên tố hay không? Nếu số đó là nguyên tố thì cậu gọi số đó là số "binbon". Ví dụ số 111 là một số "binbon" vì tổng các chữ số là a=3, chữ số lớn nhất là 1 nên số k lập được là 31, số 31 là một số nguyên tố nên n=111 là số "binbon". Thú vị với suy nghĩ này cậu bé muốn kiểm tra một loạt các số có phải là số "binbon" hay không? Hãy giúp cậu bé nhé!
Vào: Dòng đầu ghi số nguyên dương t là số test (0<t≤1000).
t dòng sau mỗi dòng ghi số nguyên dương n (0<n≤101000).
Ra: in ra t dòng, mỗi dòng ghi YES hoặc NO nếu số tương ứng là "binbon" hoặc không.
codeblock
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
++ Tính tổng các chữ số của n rồi ghép với chữ số lớn nhất của n, kiểm tra có phải số nguyên tố không.
++ Code:
#include <iostream>
#include <algorithm>
using namespace std;
int maxint(int n)
{
if (n) return max(n, maxint(n/10));
return 0;
}
int sumint(int n)
{
if (n) return n + maxint(n/10);
return 0;
}
bool check_prime(int n)
{
if (n<2) return false;
for (int i=2; i*i<=n; i++)
if(n%i==0) return false;
return true;
}
int main()
{
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
if (check_prime(sumint(n)*10+maxint(n))) cout << "YES";
else cout << "NO";
cout << endl;
}
}
++ Chạy code: Ảnh
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |