File tree Expand file tree Collapse file tree 3 files changed +47
-0
lines changed
Expand file tree Collapse file tree 3 files changed +47
-0
lines changed Original file line number Diff line number Diff line change 1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <module type =" JAVA_MODULE" version =" 4" >
3+ <component name =" NewModuleRootManager" inherit-compiler-output =" true" >
4+ <exclude-output />
5+ <content url =" file://$MODULE_DIR$" >
6+ <sourceFolder url =" file://$MODULE_DIR$/src" isTestSource =" false" />
7+ </content >
8+ <orderEntry type =" inheritedJdk" />
9+ <orderEntry type =" sourceFolder" forTests =" false" />
10+ </component >
11+ </module >
Original file line number Diff line number Diff line change 1+ import java .io .BufferedReader ;
2+ import java .io .IOException ;
3+ import java .io .InputStreamReader ;
4+ import java .util .Arrays ;
5+
6+
7+ public class Main {
8+ static final int MAX = 1000001 ;
9+
10+ public static void main (String [] args ) throws IOException {
11+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
12+ StringBuilder sb =new StringBuilder ();
13+ int T = Integer .parseInt (br .readLine ());
14+ long [] dp = new long [MAX ];
15+ //1은 모든수의 약수이므로
16+ Arrays .fill (dp , 1 );
17+ for (int i = 2 ; i < MAX ; i ++) {
18+ for (int j = 1 ; j * i < MAX ; j ++) {
19+ //i*j의 약수인 i를 더해준다.
20+ //4의 약수 2*2, 4*1 등 124가 더해짐
21+ dp [i * j ] += i ;
22+ }
23+ //누적합을 만들기 위해 진행
24+ dp [i ] = dp [i ] + dp [i - 1 ];
25+ }
26+ //sout보다는 stringbulider를 활용해야 시간 초과가 안남
27+ for (int i = 0 ; i < T ; i ++) {
28+
29+ int N = Integer .parseInt (br .readLine ());
30+ sb .append (dp [N ]+"\n " );
31+ }
32+ System .out .println (sb );
33+
34+ }
35+ }
You can’t perform that action at this time.
0 commit comments