2 solutions

  • 2
    @ 2025-11-29 19:23:13
    #include<bits/stdc++.h>
    using namespace std;
    string s,s1,s2;
    int n,x;
    vector<int>v;
    bool f;
    void ys(int n)
    {
    	v.clear();
    	for(int i=1;i<=sqrt(n);i++)
    	{
    		if(n%i==0)
    		{
    			if(i!=n/i)
    			{
    				v.push_back(i);
    				v.push_back(n/i);
    			}
    			else
    			{
    				v.push_back(i);
    			}
    		}
    	}
    }
    int main()
    {
    	while(cin>>s,s!=".")
    	{
    		n=s.size();
    		ys(n);
    		s=" "+s;
    		sort(v.begin(),v.end());
    		for(int j=0;j<v.size();j++)
    		{
    			f=true;
    			x=v[j];
    			s1=s.substr(1,x);
    			for(int i=x+1;i<=n;i+=x)
    			{
    				s2=s.substr(i,x);
    				if(s1!=s2)
    				{
    					f=false;
    					break;
    				}
    			}
    			if(f)
    			{
    				cout<<n/x<<"\n";
    				break;
    			}
    		}
    	}
    	return 0;
    }
    

    Information

    ID
    314
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    # Submissions
    5
    Accepted
    4
    Uploaded By