A : 绝望的riba2534
题目链接:http://oj.nyist.me/OJ/contest_problemset.php?cid=1033题目描述
素数,素数,成天就知道让找素数,到底有啥用?riba2534快被素数问题搞死了,他现在一看到素数就口吐白沫,四肢僵劲不能动。
为了riba2534的身体健康,你能帮帮riba2534吗。现在我们提前知道了n个riba2534要处理的数,我们需要去掉其中的素数,
然后从小到大输出去掉素数后的序列
低配版题意:给出一个长度为n的数组,去掉里面的素数后,从小到大输出
输入
多组输入,第一行一个n,下面有n个数x,1<=n<=1000,x<10000
输出
输出所求,每两个数之间空一格
样例输入
复制
5 45 27 7 5 3 3 6 2 9 4 1 5 6 8
样例输出
复制
27 45 6 9 1 6 8
提示
无
因为今天没有A新题,所以把之前的题目发一下
代码:
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; int x[1005]={0},y[1005]={0}; int hhh(int n) //我开了一个外部函数来判断素数 { if(n<=1) return 0; for(int i=2;i<=sqrt(n);i++) { if(n%i==0) return 0; } return 1; } int main() { int n; while(~scanf("%d",&n)) { int d=0; for(int i=0;i<n;i++) scanf("%d",&x[i]); for(int i=0;i<n;i++) { if(!hhh(x[i])) //如果不是素数的话就存进数组y中 y[d++]=x[i]; } sort(y,y+d); //因为要从小到大输出,所以对数组y中的数字进行排序 printf("%d",y[0]); //按照格式输出 for(int i=1;i<d;i++) printf(" %d",y[i]); printf("\n"); } return 0; }