1、一个数如果恰好等于它的因子之和,这个数就称为完数。编写应用程序求1000之内的所有完数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static void main(String args[]) {

int sum=0,i,j;

for(i=1;i<=1000;i++) { //i为被除数
for(j=1,sum=0;j<i;j++) { //j为除数
if(i%j==0)

sum=sum+j; //首先要找出一个数的所有因子吧
//如果这个数有因子(取余为0),将所有的因子求和

}

if(sum==i) //判断因子和与被除数是否相等

System.out.println("完数:"+i);

}

}

2、编写应用程序求1!+2!+······+10!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*需要定义4个变量
n是加到n的阶乘
i是循环数
sum是最终结果值,也是将上次的结果跟新的项值相加
num是每一项的值
*/
public static void main(String args[]){
int n=10,num=1,sum=1;


for(int i=1;i<=n;i++){
num=num*i; //每一项的值
sum=sum+num; //将上次的结果跟新的项值相加
}

System.out.println(sum);

}

3、分别用do while和for循环计算1+1/2!+1/3!+1/4!+······的前20项和。

do while:

1
2
3
4
5
6
7
8
9
10
public static void main(String args[]) {
double sum=0,a=1,i=1;
do { sum=sum+a; //将所有的项求和
i++;
a=(1.0/i)*a; //a还是每一项啊,因为是阶乘,所以将上一项与(1.0/i)相乘
}
while(i<=20);
System.out.println("1+1/2!+1/3!+1/4!+······的前20项和="+sum);
}

for:

1
2
3
4
5
6
7
8
9
public static void main(String args[]) {
double sum=0,j=1,i=1;
for(;i <= 20; i++) {
j = j * (1.0 / i);
sum = sum + j;
}
System.out.println("1+ 1/2!+1/3!+1/4!+······的前20项和="+sum);
}

4、编写应用程序,使用for循环语句计算8+88+888+····前10项之和

1
2
3
4
5
6
7
8
9
public static void main(String args[]){
long a,b=0, c=0;
for(a=1;a<=10;a++){ //循环10次
b=b*10+8; //每一个数是前一个数的10倍加8
c+=b; //计算10项之和
}
System.out.print("8+88+888...前10项之和 = " + c);
}

5、编写应用程序,输出满足1+2+3+·····+n<8888的最大正整数n。

for循环版:

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
int result = 0;
for(int n=1;;) {
result = result + n;
n++;
if(result > 8888) {
System.out.println("满足条件的最大整数n为" + (n-1));
break;
}else continue;
}
}

wihle循环版:

1
2
3
4
5
6
7
8
9
10
11
public static void main(String args[]) {
int n=1;
int result=0;
while(true) {
result = result + n;
n++;
if(result >= 8888)
break;
}
System.out.println("满足条件的最大整数n为:"+(n-1));
}

6、编写一个应用程序,求100以内的所以素数。

1
2
3
4
5
6
7
8
9
10
11
public static void main(String args[]) {
int i,j,m=2,n=2;
for(i=2;i<=200;i++){
for(j =2;j<=i/2;j++){ //为什么是j/2,因为最小的倍数是2,比如2是4的因子,但是3不是4的因子,16是32的因子而大于16的:17,18,19都不是它的因子
if(i%j==0)
break;
}
if(j>i/2)
System.out.println(i+"是素数!");
}
}