题目描述

Jesse是个数学迷,他最喜欢研究“哥德巴赫猜想”,因此他的计算机密码也都采用素数。 但一直用同一个密码是不安全的,所以他要经常更换他的密码。但他只允许自己的密码中出现某些数字,且密码的每一位都不相同。比如1 2 4,则有6种情况124 142 214 241 412 421。其中241 和 421为素数。为了获得他的密码(他的机器上存放了第4届舜禹杯大学生程序设计竞赛的题目!),需要生成一个字典来帮助我们破解。 请你来编写一个程序帮助我们(因为众所周知的原因我们迫切需要获得这些题目)。

输入

  • Line 1:密码的位数n (1 ≤ n ≤ 9)。
  • Line 2:1->n个不重复的整数序列 (1 ≤ x[i] ≤ 9).

输入0结束。

输出

按从小到大顺序输出所有的结果。 如果一个结果也没有,输出“NONE”。 每组数据后面跟随一个空行。

样例输入

3
1 2 4
0

样例输出

241
421
递归,数组化为整数,然后判断是否是素数,注意用递归是,无结果输出NONE不好整,看个人啦,设置成static就可以AC了。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
long long a[];
long long is_prime(long long x)//素数判断
{
if(x== || x==) return ;
if(x== || x==) return ;
long long o=sqrt(x);
for(long long i=;i<=o;i++)
{
if(!(x%i)) return ;
}
return ;
}
int is_cout(long long a[],int m,int count)//输出处理
{
long long s=;
for(int i=;i<m;i++)
{
s=s*+a[i];
}
if(is_prime(s)){
cout<<s<<endl;
count++;
}
return count;
}
int is_arrangement(long long a[],int k,int m,int count)//数组递归
{
if (k==m)
{
count=is_cout(a,m,count);
}
else
{
for(int i=k;i<m;i++)
{
swap(a[k],a[i]);
count=is_arrangement(a,k+,m,count);
swap(a[k],a[i]);
}
}
return count;
}
int main()
{
int n,mm;
while((cin>>n) && n)
{
static int count=;
for(int i=;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
mm=is_arrangement(a,,n,count);//判断是否有输出结果
if(mm==) cout<<"NONE"<<endl;
cout<<endl;
memset(a,,sizeof(a));
}
return ;
}

Jesse's Code的更多相关文章

  1. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  2. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

  3. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  4. Visual Studio Code 代理设置

    Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器,在十多年的编程经历中,我使用过非常多的的代码编辑器(包括 IDE),例如 Fron ...

  5. 我们是怎么做Code Review的

    前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...

  6. Code Review 程序员的寄望与哀伤

    一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...

  7. 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM

    刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...

  8. 在Visual Studio Code中配置GO开发环境

    一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github ...

  9. 代码的坏味道(14)——重复代码(Duplicate Code)

    坏味道--重复代码(Duplicate Code) 重复代码堪称为代码坏味道之首.消除重复代码总是有利无害的. 特征 两个代码片段看上去几乎一样. 问题原因 重复代码通常发生在多个程序员同时在同一程序 ...

随机推荐

  1. Linux之我最常用的20条命令

    Linux之我最常用的20条命令 玩过 Linux的人都会知道, Linux中的命令的确是非常多,但是玩过 Linux的人也从来不会因为 Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的 ...

  2. 4.bind绑定

    #include <iostream> #include <string> #include <boost/bind.hpp> #include <boost ...

  3. 使用regasm注册.net com组件出现不是有效的.net程序集的解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在电脑上装有VS 2008和VS 2010.使用VS 2010编写了一个C# com组件:MyCom(基于.net f ...

  4. 使用Java操作Redis(二)

    上篇文章中我们可以看到,通过自己动手编码来操作Redis是相当繁琐的,实际上我们在重复制造轮子.Redis网站上列举出了一些方便操作Redis的常用工具. 可供Java选择的比较多,这里介绍一下Jed ...

  5. vue 中使用querySelect 封装的万能选择器

    function query (el) { if (typeof el === 'string') { var selector = el; el = document.querySelector(e ...

  6. 爬虫--BeautifulSoup使用

    解析库 解析器 使用方法 优势 劣势 Python标准库 BeautifulSoup(markup, "html.parser") Python的内置标准库.执行速度适中 .文档容 ...

  7. 欧拉函数 euler

    O - 找新朋友   1.欧拉函数 euler() 在数论,对正整数n,欧拉函数是  少于或等于n的数中与n 互质 的数的数目. 互质:公约数只有 1 的两个整数,称为互质整数.即 最大的公约数也就是 ...

  8. Hyper-V 导入与导出虚拟机

    虚拟机的导入与导出功能可以将虚拟机通过文件的方式进行转移,可以将虚拟机的文件复制到活动硬盘,然后带到其他的地点进行导入,这样方便了虚拟机的跨地域的转移.但是有一点要注意,所有要转移的虚拟机都必须处于停 ...

  9. NodeJS学习笔记 进阶 (4)基于express+muter的文件上传(ok)

    个人总结:这篇文章主要讲了multer插件的使用,类似于formidable,可以用来处理post表单中的文件上传,读完这篇文章需要10分钟. 摘选自网络 概览 图片上传是web开发中经常用到的功能, ...

  10. Linux Shell脚本编程-函数

    函数介绍  定义:把一段独立功能的的代码当做一个整体,并为之一个名字,命名的代码段,此即为函数:  功能:函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程.  注意: ...