一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。编程找出1000以内的所有完数,输出到result3.txt文件中,注意要有相应异常处理。
时间: 2023-09-28 09:13:02 浏览: 100
下面是Java的代码实现:
```java
import java.io.FileWriter;
import java.io.IOException;
public class PerfectNumber {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("result3.txt");
for (int i = 2; i <= 1000; i++) {
if (isPerfectNumber(i)) {
writer.write(i + "\n");
}
}
writer.close();
} catch (IOException e) {
System.out.println("写文件出错:" + e.getMessage());
}
}
public static boolean isPerfectNumber(int n) {
int sum = 1; // 1 是所有数的因子
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum == n;
}
}
```
程序首先尝试打开文件result3.txt,如果打开成功则依次判断2到1000之间的数是否为完数,如果是则写入文件。最后关闭文件。如果在任何一个步骤中出现了异常,则输出异常信息。
阅读全文