Java编程判断输出是否为可逆素数、输出任意范围内的完全数!

前言

提示:这是CG系统上面的测试题,类名的使用看学校而定。


1、Java编程输出判断可逆素数

【问题描述】若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,则此素数称为可逆素数。编写一个判断某数是否可逆素数的函数,在主函数中输入一个整数,再调用此函数进行判断
【输入形式】用户在第一行输入一个整数。
【输出形式】程序在下一行输出yes或是no,yes表示此数是可逆素数,no表示不是。用户输入的数必须为正整数。注意:yes或是no全是小写输出。
【样例输入】23
【样例输出】no
【样例说明】用户输入23,23各位数字颠倒之后得到32,23是素数,但32不是素数,所以23不是可逆素数。
【评分标准】结果完全正确得满分。

代码块

import java.util.Scanner;
class Insteadsushu {
    int number, sum, item, highest;

    void Getshu(int number) {
        int count=0;
        item = 10;
        sum = 0;
        if(number<item){
            sum=number;
            highest=number;
            count++;
        }
        for (item = 10; number > 0 && count==0; ) {
            sum = sum + number % item;
            number = number / item;
            if ((number < 10) && (number > 0)) {
                highest = number;
            }
    }
        if(sum>highest){
            if ((sum % 3 != 0) && (highest % 2 != 0) && (highest % 5 != 0)) {
                System.out.println("yes");
            }
            if ((sum % 3 == 0) || (highest % 2 == 0) || (highest % 5 == 0)) {
                System.out.println("no");
            }
        }
        if(sum==highest){
            if(sum==2 || sum==3|| sum==5 || sum==7){
                System.out.println("yes");
            }
            else{
                System.out.println("no");
            }
        }
}
}
public class homework{
    public static void main(String args[]){
        Scanner in=new Scanner(System.in);
        Insteadsushu givemess=new Insteadsushu();
        int number=in.nextInt();
        givemess.Getshu(number);
    }
}

2、编程找出m~n之间的所有完数,m和n为从键盘输入的两个整数。

【问题描述】
编程找出m~n之间的所有完数,m和n为从键盘输入的两个整数。一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。
【输入形式】
输入两个整数。
【输出形式】
输出两个整数之间的所有完数。


代码块

import java.util.Scanner;
class Wanquanshu {
    int number;
    void Getshu(int number) {
        int i, item = 0;
        for (i = 1; i < number; i++) {
            if (i <= (number / i)) {
                if (i == 1) {
                    item = item + 1;
                }
                if ((number % i == 0) && ((number / i) != number)) {
                    item = item + i + number / i;
                }
            }
        }
        if (item == number) {
            System.out.print(item + ",");
        }
    }
}
public class homework{
    public static void main(String args[]){
        Scanner in=new Scanner(System.in);
        Wanquanshu givemess=new Wanquanshu();
        int m=in.nextInt();
        int n=in.nextInt();
        int i;
        System.out.println(m + " to " + n + " WanShu:");
        for(i=m;i<=n;i++){
            givemess.Getshu(i);
        }
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值