Đề bài: Một số được gọi là số tăng giảm nếu số đó có các chữ số thỏa mãn hoặc tăng dần, hoặc giảm dần từ trái qua phải. Hãy đếm các số nguyên tố là số tăng giảm với số chữ số cho trước.
#include<stdio.h>
#include<math.h>
bool ngto( int n ){
if(n < 2) return false;
for( int i = 2 ; i < sqrt(n) ; i++){
if(n%i == 0)
return false;
}
return true;
}
bool tang( int n){
int arr[20];
int j , dem = 0 ;
while(n > 0){
arr[20] = n%10;
n/=10;
j++;
}
for( int i = 0 ; j < i ; j++){
if(arr[i]<=arr[i+1]) return false;
}
return true;
}
bool giam( int n){
int arr[20];
int j , dem = 0 ;
while(n > 0){
arr[20] = n%10;
n/=10;
j++;
}
for( int i = 0 ; j < i ; j++){
if(arr[i]>=arr[i+1]) return false;
}
return true;
}
int main(){
int n;
int dem = 0 ;
scanf("%d", &n );
for( int i = pow(10,n-1) ; i < pow(10,n) ; i++){
if(ngto(i) && ( tang(i) || giam(i)))
dem++;
}
printf("%d",dem);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?