Cho chuỗi và số nguyên k. Duyệt chuỗi, chuyển thành chữ hoa các ký tự chữ thường có giá trị ASCII nguyên tố cùng nhau với k.
Chương trình C++
#include <bits/stdc++.h>
using namespace std;
void convert_string(string s, int k) {
int l = s.length();
for (int i = 0; i < l; i++) {
int ascii = (int)s[i];
// Kiểm tra chữ thường và nguyên tố cùng nhau với k
if (ascii >= 'a' && ascii <= 'z' && __gcd(ascii, k) == 1) {
char c = s[i] - 32; // Chuyển sang chữ hoa
s[i] = c;
}
}
cout << s << "\n";
}
int main() {
string s = "tutorialspoint";
int k = 3;
convert_string(s, k);
return 0;
}
Kết quả
TuToriAlSPoiNT
Giải thích
- Chuỗi gốc: "tutorialspoint"
- k = 3
- ASCII chữ thường: a=97, b=98, ..., z=122
- Nguyên tố cùng nhau với 3: các số không chia hết cho 3
- Ký tự được chuyển: t(116), T(84), r(114), A(65), S(83), P(80), N(78), T(84)
Lưu ý
Sử dụng __gcd từ <bits/stdc++.h> (GNU extension). Chuẩn C++17 dùng std::gcd từ <numeric>.