void init(int n) {
phi[1]=1;
for(int i=2;i<=n;i++) {
if(!use[i]){
cnt++;
prime[cnt]=i;
phi[i]=i-1;
}
for(int j=1;j<=cnt;j++){
if(i*prime[j]>n) break;
use[i*prime[j]]=1;
if(i%prime[j]==0){
phi[i*prime[j]]=phi[i]*prime[j];
--------------->break;
}
phi[i*prime[j]]=phi[i]*(prime[j]-1);
}
}
}
中箭头指向的这个break是如何保证phi的正确性的