AWXCici
微光·浅月
采纳率100%
2020-08-04 13:02

一道C++题目,呵呵,我又来问问题了~

已采纳

找最大素数(prime)
时间限制: 1 Sec 内存限制: 128 MB
题目描述
素数又称质数,是指一个大于 1 的正整数,如果除了 1 和它本身以外,不能再被其 它的数整除, 例如:2、3、5、97 等都是素数。2 是最小的素数。 现在,给你 n 个数,从中选出二个(不同的数)用它们拼出一个最大的素数,注意: 某个数出现多少次你就可以用多少次,6 与 9 不能混用。
输入
输入共 2 行:
第 1 行:1 个整数 n,表示所给你的数字的个数。
第 2 行:n 个整数 m,用一个空格隔开,其含义如题目所述。(1<=m<=99)
输出
输出共 1 行,1 个整数,为找到的最大素数。若无法拼出素数,输出-1。
样例输入
3
2 7 99
样例输出
997
提示
对于 60%的数据:n ≤ 100,1<=m<=9;
对于 100%的数据:n ≤ 1000,1<=m<=99。
(网上有很多时间超限的代码,希望有人能给正确代码,谢谢)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 8月前

    用这个
    https://www.cnblogs.com/kiritozhj/p/10501470.html
    得到全排列

    然后从大到小判断,素数判断可以用筛法,这样快一些

    点赞 评论 复制链接分享
  • z110655 °久 8月前

    某个数出现多少次你就可以用多少次 这种计算量太大了 可以输入100个数的情况1秒不可能吧 代码运行时间:163787ms
    结果 3277327777
    ss = "12 32 22 1 2 3 4 5 6 7 8 9 9 9 9 11 22 11 77 77 99 33 33 77 99 56 75 55";

    点赞 1 评论 复制链接分享