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
Đăng nhận xét