Đếm số chữ số là số nguyên tố của một số

Mọi người cho em hỏi với là em muốn đếm trong n có bao nhiêu số nguyên tố thì như thế này có đúng không ạ? Mọi người giúp em với ạ. Em xin cảm ơn.

#include<iostream>
#include<math.h>
using namespace std;
int main(){
	long long n ;cin >> n;
	int dem=0;	
    for(int i=2;i<=n){
    	if((n%10)%i!=0){
    		++dem;
    		n/=10;
		}
		cout << dem ;
	}
}
  1. Đặt tiêu đề ngắn gọn lại.
  2. Mô tả, trình bày của bạn rất mong lung, mình không hiểu rõ đièu bạn nói, đề bài thực sự là gì. Bạn đưa cả đề bài lên cho dễ.
  3. Chưa biết đề bài chính xác là gì, nhưng đoạn mã của bạn chắc chắn không ổn.

Screenshot 2023-09-17 213109
day anh

Code của bạn đang có khá là nhiều vấn đề nên mình sẽ chỉ cho bạn cách giải

Đề bài yêu cầu đếm số lượng chữ số của n là số nguyên tố. Tức với ví dụ 1222333999888 là có 6 chữ số là số nguyên tố.
Việc bạn cần làm là lần lượt kiểm tra từng chữ số với 2 3 5 7 vì chỉ có những số này là số nguyên tố có 1 chữ số. Bạn có thể chia lấy dư cho 10 với n để có chữ số ở cuối để kiểm tra và chia lấy phần nguyên cho 10 để rút đi chữ số vừa kiểm tra đó.
Cho vào bộ đếm rồi trả về kết quả ở cuối chương trình

2 Likes

Bổ sung thêm cho bạn dễ hiểu ý của bạn @nguy4nkjn.

  1. Tách từng chữ số của số n. Tách bằng cách chia lấy dư (%) cho 10 và cả phép chia nguyên (/) với 10 để lấy tuần tự các chữ số với vòng lặp.
  2. So sánh giá trị đã tách với các số nguyên tố có 1 chữ số là 2, 3, 5, 7. Nếu đúng là các số đó thì tăng biến đếm lên 1.
  3. Kết thúc quá trình tách (là vòng lặp) thì in biến đếm ra, đó là kết quả yêu cầu.
4 Likes

anh có thể code ra được k ạ em vẫn chưa hiểu lắm ạ.

#include <iostream>
using namespace std;
int main() {
    long long n;
    cin >> n;
    int count = 0;
    while (n > 0) {
        int digit = n % 10;
        n /= 10;
        if (digit == 2 || digit == 3 || digit == 5 || digit == 7) {
            count++;
        }
    }
    cout << count;
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?