ZOJ 1905 Power Strings

来源:互联网 发布:一键截图软件 编辑:程序博客网 时间:2024/06/05 17:51

枚举1 - len/ 2,满足条件马上跳出循环.

#include <iostream>#include <cstdio>#include <memory.h>#include <cstring>using namespace std;const int maxn = 1000010;char s[maxn];int main(){while (scanf("%s",s + 1) && strcmp(s + 1, ".")){int len = strlen(s + 1),f = 0;for (int i = 1; i <= len / 2; ++i){if(len % i == 0){int flag = 0;for (int j = i + 1; j <= len; j += i){if(memcmp(s + 1, s + j, i)){flag = 1;break;}}if(!flag){printf("%d\n",len / i);f = 1;break;}}}if(!f){printf("1\n");}}return 0;}