您的位置:首页 > 其它

HDOJ 1215 七夕节

2017-10-31 21:26 169 查看
HDACM1215

1.采用枚举的方法,暴力解决 o(╯□╰)o

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
int num[] = new int[500001];
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-->0) {
int n = sc.nextInt();
if (num
>0) {
System.out.println(num
);
continue;
}
num
= 1;
int j = 2;
for ( ;j*j < n; j++) {
if (n%j==0) {
num
= num
+j+n/j;
}
}
if (j*j==n) {
num
+= j;
}
System.out.println(num
);
}
}
}


2.类似筛选法:

当i=2时,所有2的倍数的数字(除2本身)都有因子2,

当i=3时,所有3的倍数的数字(除3本身)都有因子3,

当i=4时,所有4的倍数的数字(除4本身)都有因子4,

……

当i=250000时,所有250000的倍数的数字(除250000本身)都有因子250000

最后输出结果在加上因子1;

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
int num[] = new int[500001];
for (int i = 2; i <= num.length/2; i++) {
for (int j = 2*i; j < num.length; j += i) {
num[j] += i;
}
}
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-->0) {
System.out.println(num[sc.nextInt(
4000
)]+1);
}
sc.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: