在循环中使用array的add方法时,在添加到某个数字之后就不再执行add方法了

问题遇到的现象和发生背景

问题出现在主方法中,array1和array2分别是在输入数字范围内的回文数和素数,array用来储存前两个数组中的共同项
在循环中执行add方法在存入了101这个元素后就不再执行了
(定义好了的方法测试过了是没有问题的)

问题相关代码,请勿粘贴截图
import java.util.ArrayList;
import java.util.Scanner;

public class huiwen2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();//输入要确定的素数回文数的范围
        ArrayList<Integer> array1 = pd(num);//范围内的回文数
        ArrayList<Integer> array2 = sushu(num);//范围内的素数
        ArrayList<Integer> array = new ArrayList<>();//范围内的素数回文数

        int z = 0;//z用来保存索引j
        for (int i = 0; i < array1.size(); i++) {
            for (;z < array2.size();z++) {
                if (array1.get(i) == array2.get(z)) System.out.println(array.add(array1.get(i)));
                if (array1.get(i) < array2.get(z))break;//减少不必要的运算

            }
        }
        for (int i = 0; i < array.size(); i++) {
            System.out.println(array.get(i));
        }

    }
    public static char[] zhuanhuan(int i){
        String str = String.valueOf(i);
        return str.toCharArray();
    }//1.把输入数字转换为char[]

    public static ArrayList<Integer> pd(int sc){
        ArrayList<Integer> arrayList= new ArrayList<>();

        for (int num = 0; num <= sc; num++) {
            char[] charArray = zhuanhuan(num);
            int longChar = charArray.length;

            int i = 0,j = longChar - 1;
                while (i <= j) {
                    if (charArray[i++] != charArray[j--]) break;
                    else if (i >= j){
                        arrayList.add(num);
                        break;
                    }
                }
           }
        return arrayList;//回文数数组
    }//2.整合出回文数放到数组中

    public static ArrayList<Integer> sushu(int sc){
            ArrayList<Integer> array1 = new ArrayList<>();

        for (int i = 2; i <= sc; i++) {
            for (int j = 2; j <= i; j++) {
                if (i%j == 0 && i != j)break;
                if (j == i)array1.add(i);
                else continue;
            }
        }
            return array1;
    }//3.获得范围内的素数

}

运行结果及报错内容

true
true
true
true
true
true
2
3
5
7
11
101

我的解答思路和尝试过的方法

要是单独使用add添加符合if条件又没存入的元素则没有问题

我想要达到的结果