利用队列求解素数环问题
素数:又称质数(prime number),有无限个。素数定义为在大于1的自然数中,除了1和本身以外的数不在有其他因数的数称为素数。
在这里我使用的开发环境是IEDEA
待解决的问题:
N各自然数(1~N)排列成环形,使得每相邻两个数之和为素数,构成一个素数环。
解决思想:
建立两个队列,一个存放操作对象(n),一个存放素数(primeQueue),初始元素为1。
我们将工作队列里面的元素依次与素数队列里面的尾元素相加,如果值为素数就将工作栈的该元素加入到素数队列的尾部,如果值不是素数,则加在工作队列的尾部,等待下一次相加。在上诉操作的同时,check_times计数器也在记数,如果循环多次后check_times的值不变,则程序结束。