In ra các chữ số nguyên tố phân biệt của 1 số (vd 2475 thì ra 2 7 5)

#include <bits/stdc++.h>

using namespace std;
int nto(int a)
{
     if(a<2)return 0;
     for(int i=1;i*i<=a;i++)
          if(a%i==0) return 0;
     return 1;
}
int dao(int a)
{
     int t=0;
     while(a!=0)
     {
          t=t+a%10;
          a=a/10;
     }
     return t;
}
set<int>s;
int main()
{

    int n;
    cin>>n;
    int i=1,d=0;
    int m=dao(n);
    while(m)
    {
         if(nto(m%10)==1){s.insert(m%10);i++;d++;}
         m=m/10;
    }
    for(i:s)
    {
         cout<<s[i];
    }
    return 0;
}

e làm kiểu set mà ko bt có sai ko mn sửa cho e hoặc nếu cách này ko đúng thì cho e hướng giải ạ

đúng hay sai thì bạn thử với test case mà ra được kết quả đúng là được

Các số nguyên tố có 1 chữ số là: 2, 3, 5, 7. Chỉ có 4 số đó thôi, bạn đâu cần viết hàm tìm số nguyên tố.
Đúng hay sai là theo yêu cầu đề bài và bạn phải biết nó sai như nào chứ.
Vậy đề bài yêu cầu không in ra những số trùng nhau và phải theo thứ tự xuất hiện?
Bạn nên biết: set sẽ tự sắp xếp các phần tử.

Có thể bạn nên dùng unordered_set.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?