Java实现同构数,AC显示80%

Java实现为什么AC显示80%呢
感觉所有的同构数都找出来了呀,不知道哪里有问题,求解答

img

同构数
题目描述
一个数出现在它的平方数的右端,这个数称为同构数(N最大可以到100000)。
例如:5出现在25的右侧,5是同构数;25出现在625的右侧,25也是同构数。
请编程求出1~N之间的所有同构数。

输入格式
输入一个整数N(1<=N<=100000)。

输出格式
输出1~N之间的所有同构数,中间用空格隔开。

输入样例
999

输出样例
1 5 6 25 76 376 625
题目出处

import java.util.Scanner;

public class p60 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextInt();
        long k = 10;
        for(long i = 1;i <= n;i++){
            if(i == k){
                k *= 10;
            }
            long j = i * i;
            if((j % k) == i){
                System.out.print(i+" ");
            }
        }
    }
}

输出结果

img

hallo

看看是不是最后不允许有多余的空格。而5个案例正好只有一个只输出1个

题库里答案错了是常事