20秒。まだ雑な部分あるけどもういいかな?
さっきのやつで答を探す部分を以下のようにした。論理判断はコスト高いんだな。
len <- length(p.lis)*length(p.lis[p.lis<sqrt(10^7)]) ephi <- numeric(len) ans <- numeric(len) count <- 1 for(i in p.lis){ for(j in p.lis[p.lis < sqrt(10^7)]){ ephi[count] <- euler.phi(i,j) ans[count] <- i*j count <- count+1 } } ndp.order <- order(ans/ephi) ephi <- ephi[ndp.order] ans <- ans[ndp.order] i <- 0 repeat{ i <- i+1 if(ans[i] >= 10^7) next if(toDig.sort(ephi[i])==toDig.sort(ans[i])){ break } } ans[i]