PAT 练兵场 乙级题目中 “分解因子”的疑惑
原题url如下:http://www.nowcoder.com/pat/2/problem/262
我的代码在机器上运行是能够得到正确的结果,可是提交之后有个测试用例“3=3”不能通过,我百思不得期间,不知道哪里多了空格还是少了空格,我想知道测试用例得到的结果应该是怎么一个空格?难道这空格还会受到中文和英文的影响?

我的代码如下:
import java.util.Scanner;
/*这样一个事实,若一个整数n有一个大于sqrt(n)的因子,则n的其他因子必然小于sqrt(n),且大于sqrt(n)的因子最多只有一个。
 * 因此,上面的代码在查找数n的因子时,只需循环到sqrt(n)就可以。
 * 并且,这个大于sqrt(n)的因子必然是一个质数,或者为1,所以最后再乘一个m。*/
public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            // long startTime = System.currentTimeMillis();
            int n = scanner.nextInt();
            fun(n);
            // long endTime = System.currentTimeMillis();
            // System.out.println("\n" + (endTime - startTime));
        }
    }
    static void fun(int n) {// 分解正数x并将质因子输出的方法
        int m = n;
        System.out.print(n + " = ");
        for (int i = 2; i <= Math.sqrt(n) && m != 1; i++) {
            while (m % i == 0) {
                m /= i;
                if (m != 1) {
                    System.out.print(i + " * ");
                } else {
                    System.out.print(i);
                }
            }
        }
        for (int i = (int) Math.sqrt(n) + 1; i <= n; i++) {
            if (m % i == 0) {
                System.out.print(i);
                break;
            }
        }
    }
}


注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-28 02:13
门头沟学院_2024
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-06 13:45
门头沟学院_2023
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
2022-12-02 15:29
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议