1000以内完数:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.
(因子除去这个数本身的其他约数)
//方法一:利用根号i作为范围
for (int i = 2; i < 1001; i++) {
int sum = 1;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i%j==0) {
sum+=j;
sum+=(i/j);
}
}
if (sum==i) {
System.out.println(i);
}
}
//方法二:利用i/2作为范围
for (int i = 2; i < 1001; i++) {
int sum = 1;
for (int j = 2; j <= i/2; j++) {
if (i%j==0) {
sum+=j;
}
}
if (sum==i) {
System.out.println(i);
}
}
100以内质数
质数:素数,只能被1和其本身整除的自然数-->从2开始,到这个数-1为止,都不能被这个数本身 整除。
int sum=0;
lable:for (int i = 2; i <= 100; i++) {
int count=0;//也可定一个标志,boolean isFlag = true;
for (int j = 2; j <= Math.sqrt(i); j++) {//优化二:根号i,时间也可省
if (i%j==0) {
continue lable;//直接进入新的一波lable表时的for循环
}
}
sum++;
System.out.println(i);
}
System.out.println(sum);