楼主: yukiyirus
6497 2

[作业] R语言求质数 [推广有奖]

  • 1关注
  • 0粉丝

高中生

65%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0.6000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
99 点
帖子
4
精华
0
在线时间
67 小时
注册时间
2019-6-7
最后登录
2025-11-27

楼主
yukiyirus 发表于 2019-6-7 22:38:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

           找出1000以内所有能够被两组不同质数相加得到的偶数(例如:12=5+7为一组不同的质数,14=7+7为一组相同的质数,18=5+13和18=7+11为两组不同的质数,56=3+53、56=13+43和56=19+37为三组不同的质数),注意最后输出的结果要包括偶数本身,以及对应相加的质数




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言

沙发
yankos 发表于 2019-6-7 22:39:49
function()is.prime <- function(n)
{
  if(mode(n)!="numeric" || n<2) return(FALSE)

  root <- floor(sqrt(n)); int_n=floor(n)
  if(int_n==2 || int_n==3) return(TRUE)

  for(k in 2:root)
    if( (int_n %% k)==0 ) return(FALSE)
  return(TRUE)
}

getprime <- function(x)
{
  if(mode(x)!="numeric" || x<2) return(c())

  result <- c(); len=0
  int_x=floor(x)

  for(n in 2:int_x)
    if(is.prime(n)){ len=len+1; result[len]=n }

  return(result)
}

getprime(10)



已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
yukiyirus 发表于 2019-6-7 22:41:41
yankos 发表于 2019-6-7 22:39
function()
myprimes <- getprime(500)  #get all primes that are less than 500

result <- list()
for(n in seq(4, 1000, 2))
{
  ret <- c(n)
  for(k in myprimes){
    if(k>=n/2) break
    if((n-k) %in% myprimes) ret[length(ret)+1]=k   #get a combination
  }
  if(length(ret)==3) result[[length(result)+1]] <- ret
}
  
for(n in 1:length(result))
{
  ret=result[[n]]
  cat(ret[1], "=", ret[2], "+", ret[1]-ret[2], "\t", sep="")
  cat(ret[1], "=", ret[3], "+", ret[1]-ret[3], "\n", sep="")
}
晓得啦

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 12:57