アルゴリズムによる周期文字列の向上


右は物语を闻くのが好きですが、右のお母さんはいつも「昔は山があって、山には寺があって、お寺にお坊さんがお坊さんに物语を话していました.何を话していましたか.昔は山があって......」という循环の话をして右をごまかしています.1つの文字列が1つ以上の長さkの重複文字列で接続されている場合、この文字列を周期kの列と呼ぶ.例えば、文字列'abcabcabc'は、4つのサイクル'abc'からなるため、3サイクルである.同様に、6を周期とし(2つの繰り返しの「abcabc」)、12を周期とする(1つの循環の「abcabcabc」).右右は今彼の友达の大灰狼にお母さんの話を伝えたいと思っています.プログラムを書いてください.文字列の最小周期を測定することができます.最大長さ100の空白のない文字列を入力します.
入力した文字列の最小周期を表す整数を出力します.サンプル入力HaHa
サンプル出力2
サンプル入力Return 0
サンプル出力7
問題は以下の通りです.
import java.util.Scanner;

public class T150 {
    static String s;
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        s=scan.nextLine();
        scan.close();
        for(int i=1;i<=s.length();i++) {
            if(s.length()%i==0) {
                String s1=s.substring(0,i);
                boolean flag=true;
                for(int j=i;j<=s.length()-i;j+=i) {
                    if(!s.substring(j,j+i).equals(s1)) {
                        flag=false;
                        break;
                    }
                }
                if(flag) {
                    System.out.println(i);
                    break;
                }
            }
        }
    }
}