用常规数组来解决查找素数的问题:(假如要查找<=1024的素数)

  一、定义一普通数组,数组容量1024;并将该数组内所有值置1;

  二、操作数从索引2(因为2是第一个素数)开始依次检查每个后续的数组索引,先查看该索引对应的元素值是否为1;若为1,那么就检查该索引是否是2的倍数;

  三、若第二步中,索引是2的倍数,那么就把该索引的数值设为0;

  四、检查完所有数组索引后,接着移动到索引3,重复相同的操作。

方法代码:

 
代码
public void GenPrimes(int [] arr)
{
for (int outer = 2; outer <= arr.GetUpperBound(0); outer++)
{
for (int inner = outer + 1; inner <= arr.GetUpperBound(0); inner++)
{
if (arr[inner] == 1)//该索引对应的值是否为1
if ((inner % outer) == 0)//若上面的值为1,则判断该索引自身能否被2,3整除,若能整除,则将该索引对应的值置0
arr[inner] = 0;
}
}
}

 

显示素数:

 

代码
public void ShowPrimes(int[] arr)
{
for (int i = 2; i <= arr.GetUpperBound(0); i++)
if (arr[i] == 1)
Console.Write(i
+ " ");//对应的索引值就是素数
}

BitArray类实现上述查找方法还未掌握,继续看。

相关文章:

  • 2021-09-24
  • 2021-07-20
  • 2022-01-15
  • 2022-12-23
  • 2018-07-06
猜你喜欢
  • 2021-09-25
  • 2022-02-09
  • 2021-07-11
  • 2021-07-26
  • 2021-12-05
  • 2021-12-09
  • 2022-12-23
相关资源
相似解决方案