Số may mắn (2 điểm): Nam là một học sinh rất yêu thích và đam mê về các con số, nên Nam thường xuyên có suy nghĩ về các gọi tên cho các con số. Số may mắn đã được Nam định nghĩa như sau: Số may mắn là số có tổng của bình phương các chữ số là một số nguyên tố. - Trong tệp HPNUMBER.INP cho duy nhất số nguyên N (0 < N < 1000) - Hãy viết chương trình bằng ngôn ngữ lập trình C++ kiểm tra xem số N có phải làm số may mắn hay không và ghi vào tệp HPNUMBER.OUT theo cấu trúc: Nếu N là số may mắn thì ghi vào tệp HPNUMBER.OUT là "YES" ngược lại ghi vào là "NO" làm bằng C++ nha

1 câu trả lời

#include <bits/stdc++.h>
using namespace std;
long long tbp(string s)
{
    long long t=0;
    for (char i:s)
        t+=(i-'0')*(i-'0');
    return t;
}
bool ktnt(long long n)
{
    if (n<2) return false;
    bool kt=true;
    for (long long i=2; i<=sqrt(n); i++)
        if (n%i==0) {kt=false; break;}
    return kt;
}
int main()
{
    ifstream fi;
    ofstream fo;
    fi.open("HPNUMBER.INP", ios_base::in);
    fo.open("HPNUMBER.OUT", ios_base::out);
    string n;
    fi >> n;
    if (ktnt(tbp(n))==true) fo << "YES";
    else fo << "NO";
}

$\color{red}{\text{Daoanhviet96}}$

Câu hỏi trong lớp Xem thêm