• 第7周编程题:零基础学Java


    1、分解质因数(5分)

    题目内容:

    每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

    现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。

    输入格式:

    一个整数,范围在[2,100000]内。

    输出格式:

    形如:

    n=axbxcxd

    n=n

    所有的符号之间都没有空格,x是小写字母x。

    输入样例:

    18
    

    输出样例:

    18=2x3x3
    
    时间限制:500ms内存限制:32000kb
    
    import java.util.Scanner;
     
    public class Main {
    	
    	public static boolean is_odd(int n){
    		if(n==2||n==3) return true;
    		if(n%2==0) return false;
    		int i;
    		for(i=3;i<=n/2;i+=2)
    		if(n%i==0) return false;
    		return true;
    	}
     
    	public static void main(String[] args) {
    		Scanner in = new Scanner (System.in);
    		int n=in.nextInt();
    		int i=2;
    		System.out.print(n+"=");
    		while(i<=n){
    			if(i==n){
    				System.out.println(n);
    				break;
    			}else if(n%i==0){
    				System.out.print(i+"x");
    				n /=i;
    			}else{
    				i++;
    			}
    			
    		}
    	}
     
    }
    

    2、完数(5分)

    题目内容:

    一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。

    现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。

    提示:可以写一个函数来判断某个数是否是完数。

    输入格式:

    两个正整数,以空格分隔。

    输出格式:

    其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一个空行。

    输入样例:

    1 10
    

    输出样例:

    6
    
    时间限制:500ms内存限制:32000kb
    
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int m = sc.nextInt();//[n,m]区间
            StringBuilder sb = new StringBuilder();
            for(int i = n; i <= m; i++) {
                if(isFullNum(i))
                    sb.append(i + " ");
            }
            System.out.println(sb.toString().substring(0, sb.length() - 1));
        }
    
        private static boolean isFullNum(double num) {//完数判断
            //num的所有因子集合,除去本身
            int ans = 0;//因子和
            for(int i = 1; i < num; i++) {
                if(num % i == 0)
                    ans += i;
            }
            return ans == num;
        }
    }
    
    欢迎查阅
  • 相关阅读:
    Use HTTPS instead of HTTP
    Disable SSLv3
    JIRA Installation
    排序算法之简单选择排序
    排序算法之冒泡排序
    三本优秀的Python教程
    ubuntu*set*up
    程序员的十层楼(转载)
    drools spring config的问题
    MySQL Performance Tuning
  • 原文地址:https://www.cnblogs.com/gh110/p/11827710.html
Copyright © 2020-2023  润新知