java练习10

一、编写一个程序,找出1000以内的所有完数。所谓完数是指一个数恰好等于它的因子之和(不包括它本身)。

public class WanShu {
    public static void main(String[] args) {
        for (int i=2;i<1000;i++){
            if (isWanShu(i)) {
                System.out.println(i+"是一个完数\n");
            }
        }
    }
    public static boolean isWanShu(int num){
        int sum=1;
        for (int i=2;i*i<=num;i++){
            if(num%i==0){
                sum+=i;
                if (i * i != num) {
                    sum += num / i;//避免平方根因子重复累加
                }
            }
        }
        return sum==num;
    }
}
  1. 主方法 main 中使用 for 循环遍历从 2 到 999 的每个数。
  2. 对于每个数,调用 isWanShu 方法来判断是否为完数。
  3. isWanShu 方法会计算给定数 num 的因子之和,然后将这个和与原数比较,若相等则返回 true 表示是完数,否则返回 false。
  4. 若某个数是完数,则在主方法中打印输出该数是一个完数。

 

二、编写一个Java方法,接受一个整数数组作为参数,返回一个新数组,其中的元素是原数组中偶数的平方。

import java.util.Scanner;

//编写一个Java方法,接受一个整数数组作为参数,返回一个新数组,其中的元素是原数组中偶数的平方
public class practice1002 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入数组的长度:");
        int length=scanner.nextInt();

        int [] list=new int [length];
        for(int i=0;i<length;i++){
            System.out.println("输入数组中的整数:");
            list[i]=scanner.nextInt();
        }
        int []endList=Array(list);//调用Array方法
        System.out.println("原数组偶数的平方构成的新数组:");
        for(int i=0;i<length;i++){
            System.out.print(endList[i]+" ");
        }
    }

    public static int []Array(int [] list){
        int index=0;
        int count=0;
        for(int i=0;i<list.length;i++){
            if(list[i]%2==0){
                count++;
            }
        }
        int[] end=new int[count];
        for(int i=0;i<list.length;i++){
            if(list[i]%2==0){
                end[index]=list[i]*list[i];
                index++;
            }
        }
        return end;
    }
}
  1. 主方法 main 中首先创建一个 Scanner 对象来接收用户输入。
  2. 用户被要求输入数组的长度,并根据输入长度创建一个整型数组 list
  3. 使用 for 循环,用户逐个输入数组中的整数,将这些整数存储在数组 list 中。
  4. 调用 Array 方法,传入 list 数组作为参数,该方法会返回一个新的数组,其中存储了原数组中偶数的平方。
  5. 将返回的新数组赋值给 endList,然后使用 for 循环打印输出新数组中的每个元素,即原数组中偶数的平方。
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值