Advertisement
mickypinata

CUBE-T080: The Repeated String

Apr 14th, 2020
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. #include <math.h>
  4. using namespace std;
  5.  
  6. char msg[100010];
  7. int len;
  8.  
  9. int Repeat(int n){
  10.     for(int i = 0; i < len - n; i += n){
  11.         for(int j = 0; j < n; ++j){
  12.             if(msg[i + j] != msg[i + n + j]){
  13.                 return 0;
  14.             }
  15.         }
  16.     }
  17.     return 1;
  18. }
  19.  
  20. int main(){
  21.  
  22.     int cnt;
  23.  
  24.     for(int k = 1; k <= 5; ++k){
  25.         scanf(" %s", msg);
  26.         len = strlen(msg);
  27.         double mx = sqrt(len);
  28.         cnt = 0;
  29.         for(int i = 1; i <= mx; ++i){
  30.             if(len % i == 0){
  31.                 if(i != len / i){
  32.                     cnt += Repeat(i) + Repeat(len / i);
  33.                 } else {
  34.                     cnt += Repeat(i);
  35.                 }
  36.             }
  37.         }
  38.         cout << cnt << "\n";
  39.     }
  40.  
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement