算 φ\varphiφ 的时候要用 for(int i=2;i<=sqrt(n);i++),不要 int s=sqrt(n); for(int i=2;i<=s;i++)。
for(int i=2;i<=sqrt(n);i++)
int s=sqrt(n); for(int i=2;i<=s;i++)
因为后者的 sss 不会变,是 Θ(n)\Theta(\sqrt n)Θ(n) 的,而前者是 O(n)\Omicron(\sqrt n)O(n) 的,而且上界非常不紧。
这就导致了效率相差很大,会被极限数据卡掉(
在 SPOJ 交了一页