渣渣小白学R(每日一题)--找到100以内所有的质数 AND 计算100以内质数的个数

找到100以内所有的质数

方法一:(1)给x一个初值1

              (2)输入一个数i,用i除以它前边的每个数,如果能整除,把0赋给x,退出循环

              (3)判断x是否等于1,如果x=1,说明不能整除前边的每一个数,即为质数.此时输出i

              (4)执行i从2到100这个循环,就能得到100以内的所有质数了

for(i in 2:100)
{
  x=1
  for(j in 2:(i-1))
  { 
    if(i%%j==0)
    {
      x=0
      break
    }
  }
  if(x==1)
  {
    print(i)
  } 
}

方法二:(1)输入一个数i,用i除以它前边的每个数,如果能整除,退出循环;如果一直到i-1都不能整除,说明是质数,输出i

              (2)执行i从2到100这个循环,就能得到100以内的所有质数了

for(i in 2:100)
{
  for(j in 2:(i-1))
  { 
    if(i%%j==0)
    {
      break
    }
    else if((i%%j!=0)&(j==(i-1)))
    {
      print(i)
    } 
  }
}


方法三:(1)把i之前的所有数定义为向量try

                (2)用i除以向量try,得到向量process

                (3)输出向量process里面等于0的数的位置,如果这个长度等于0,如果都不能被整除,输出i

             (4)执行i从2到100这个循环,就能得到100以内的所有质数了

for (i in 2:100) 
{
  try<-2:(i-1)
  process <- i%%try
  if(length(which(process==0))==0)
  {
    print(i)
  }
}

计算100以内质数的个数

(1)在上边的基础上,增加一个变量y记录质数的个数.

(2)每次循环,如果x=1,说明输入的数是质数,y增加1.

(3)最后输出y即可.

y=0
for(i in 2:100)
{
  x=1
  for(j in 2:(i-1))
  { 
    if(i%%j==0)
    {
      x=0
      break
    }
  }
  if(x==1)
  {
    y=y+1
  } 
}
print(y)

猜你喜欢

转载自blog.csdn.net/weixin_42124921/article/details/82555610