public static void main(String[] args) {
//设定三个集合
HashSet<Integer> list = new HashSet<>();
HashSet<Integer> list1 = new HashSet<>();
HashSet<Integer> list2 = new HashSet<>();
//往list添加元素
for (int i = 101; i <= 200; i++) {
list.add(i);
}
//遍历list,去掉偶数(不是素数的数);
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
if (it.next() % 2 == 0) {
it.remove();
}
}
//假如某奇数的平方在101-200中,讲该平方值加入list1
int x = 0;
for (int i = 0; i < 15; i++) {
x = (2 * i + 1 ) * (2 * i + 1);
if (x > 101 && x < 200) {
list1.add(x);
}
}
//将奇数与奇数相乘,如果积在101-200之间,讲该积假如集合list2
//用Set集合的好处就是这里可以去除list2中的重复元素,j<=i 是为了提高效率
int y = 0;
for (int i = 1; i < 67; i++) {
int m = 2 * i + 1;
for (int j = 1; j <= i; j++) {
int n = 2 * j + 1;
if ((y = m * n) > 101 && y < 200) {
list2.add(y);
}
}
}
//从list中去掉不是素数的数,剩下的就是想要的;
list.removeAll(list1);
list.removeAll(list2);
System.out.println(list.size());
System.out.println(list);
}
输出结果:
21
[137, 139, 131, 157, 149, 151, 173, 163, 167, 191, 179, 181, 197, 199, 193, 103, 101, 109, 107, 113, 127] |