我真棒
2023-12-30 13:15:32
发布于:广东
6阅读
0回复
0点赞
#include <iostream>
#include <cstring>
using namespace std;
int gcd(int m, int n){
if(n == 0){
return m;
}else{
return gcd(n, m % n);
}
}
bool chase(char p[], int l, int n){
for(int i = 0; i < l - n; ++i){
if(p[i] != p[i + n]){
return false;
}
}
return true;
}
bool evan(char p[], char q[], int n){
for(int i = 0; i < n; ++i){
if(p[i] != q[i]){
return false;
}
}
return true;
}
void found(){
char s[30], s1[30];
cin >> s >> s1;
int a = strlen(s), b = strlen(s1), d = gcd(a, b);
for(int i = d; i > 0; --i){
if(d % i == 0 && chase(s, a, i) == true && chase(s1, b, i) == true && evan(s, s1, i) == true){
for(int j = 0; j < b / d; ++j){
cout << s;
}
cout << endl;
return ;
}
}
cout << -1 << endl;
}
int main(){
int t;
cin >> t;
for(int i = 0; i < t; ++i){
found();
}
return 0;
}
这里空空如也
有帮助,赞一个