là số nguyên tố, mỗi chữ số là nguyên tố, tổng là số thuận nghịch 2cs, tích là số thuận nghịch 3 cs

Đề bài:
Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây:
(i)                 K là số có 5 chữ số;
(ii)               K là số nguyên tố;
(iii)             Mỗi chữ số của K cũng là những số nguyên tố;
(iv)              Tổng các chữ số của K là một số thuận nghịch hai chữ số;

(v)                Tích các chữ số của K là một số thuận nghịch ba chữ số.

Bài giải:


#include<iostream>
#include<cmath>
using namespace std;

bool nto(int x){
 if( x < 2)
  return false;
 for(int i = 2; i <= sqrt(x); i++){
  if( x%i == 0 )
   return false;
 }
 return true;
}


bool kttn(int n) {
 int m = n;
 int dao = 0 ;
 while(n > 0) {
  int t = n%10;
  dao = dao * 10 + t;
  n = n/10;
 }
 if(dao == m)
  return true;
 return false;
}

bool tungso(int n){
 int a[100];
 int i = 0;
 while( n > 0){
  a[i] = n %10;
  n = n / 10;
  i++;
 }
 for(int j = 0 ; j < i; j ++){
  if(!nto(a[j]))
   return false;
 }
 return true;
}

bool tong(int n){
 int tong = 0;
 while( n > 0){
  int t = n%10;
  tong = tong + t;
  n = n /10;
 }
 if(kttn(tong) && tong >=10 && tong <= 99 )
  return true;
 else
  return false;
}

bool tichcacso(int n){
 int tich = 1;
 while( n > 0){
  int t = n%10;
  tich = tich * t;
  n = n /10;
 }
 if(kttn(tich) && tich >=100 && tich <= 999 )
  return true;
 else
  return false;
}

int main(){
 // thieu tung so la nto k có so nao tman
 for(int i = 10000; i <= 99999; i++){
  if(nto(i) && tong(i) && tichcacso(i))
   cout << i << endl;
 }
}

Nhận xét

Bài đăng phổ biến từ blog này

Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số

Đếm số thuần nguyên tố trong một khoảng

Tìm số đẹp (lộc phát)