PTIT024 - Đố chữ

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Fiona tự tin mình là người học rất giỏi môn ngữ văn nên muốn đố chữ các bạn trong lớp. Cô sẽ chuẩn bị một xâu ký tự, thay thế dấu * vào một vài vị trí và cho các bạn đoán xâu ban đầu. Nhưng vì bận làm việc nhà nên Fiona muốn các bạn giúp cô ấy chuẩn bị xâu đã mã hóa để cô ấy chỉ việc đi đố người khác thôi.

Các bạn hãy giúp Fiona mã hóa xâu theo quy tắc sau: đánh dấu * vào những vị trí của xâu mà chỉ số của nó là một số nguyên tố.

Input

Xâu ký tự s ban đầu.

Giới hạn:

  • (~0 \le length(s) \le 1000~)

Output

In ra xâu s đã được mã hóa

Sample

Input #1
LapTrinhPTITLapTrinhTuTraiTim
Output #1
La**r*n*PTI*L*pTr*n*TuT*aiTim

Problem source: CLB Lập Trình PTIT


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    gtmailong  đã bình luận lúc 28, Tháng 4, 2024, 0:58

    c++

    #include <iostream>
    #include <cmath>
    #include <cstring>
    
    using namespace std;
    
    bool F[1000];
    
    void solves(){
        memset(F,1,sizeof(F));
        F[0] = 0;
        F[1] = 0;
        for (int i = 2; i <= sqrt(1000); i++){
            if (F[i]){
                for (int j = i*i; j <= 1000; j += i){
                    F[j] = 0;
                }
            }
        }
    }
    
    int main(){
        solves();
        string s; cin >> s;
        for (int i = 0; i < s.size(); i++){
            if (F[i]) s[i] = '*';
        }
        cout << s;
        return 0;
    }
    

  • 0
    thangok  đã bình luận lúc 26, Tháng 4, 2024, 14:30

    include<bits/stdc++.h>

    using namespace std; bool nt(int n){

    if(n&lt;2) return false;
    for(int i=2;i<=sqrt(n);i++){
        if(n%i==0) return false;
    }
    return true;
    

    } int main(){ iosbase::syncwith_stdio(false); cin.tie(0);cout.tie(0);

    string s;
    cin>>s;
    for(int i=0;i&lt;s.length();i++){
        if(nt(i)) s[i]='*';
        cout<&lt;s[i];
    }
    return 0;
    

    }


  • -1
    thinhec12012007__  đã bình luận lúc 20, Tháng 2, 2024, 8:59

    Mn có thể tham khảo hướng làm theo thuật toán sàng nguyên tố của mình :

    include <bits/stdc++.h>

    using namespace std; string s; bool a[1001]; void check() { for(int i=0;i<=1001;i++) a[i]=1; for(int i=2;i<=32;i++) { if(a[i]==1) { for(int j=ii;j<=1001;j+=i) a[j] = 0; } } } int main() { getline(cin,s); int r=s.length(); check(); for(int i=2;i<r;i++) { if(a[i]) s[i]=''; }
    cout<<s; return 0; }