ACM stemps 212解题报告.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:3 大小:22KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

ACM stemps 212解题报告.doc

ACMstemps212解题报告.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

ACMSteps2.12解题报告#include<iostream>#include<cmath>usingnamespacestd;intmain(){inta[100],i,j,k,n,flag,d;while(cin>>n){for(i=0;i<n;i++){d=0;cin>>a[i];if(a[i]<2){d++;break;}}if(d==1)break;else{k=0;for(i=0;i<n;i++){cin>>a[i];flag=0;for(j=2;j<=sqrt((float)a[i]);j++)if(a[i]%j==0){flag++;break;}if(flag==0)k++;}}cout<<k<<endl;}return0;}这是一个求素数的问题,所谓素数就是只有1和本身两个约数。而做题时我用到的却是非素数的概念:能够被2到根号n只见任意一个数正处的就是非素数。我的做法是:把输入的数去磨2到根号n之间的数,如果磨得的结果为零就做一个标记,说明此数为非素数之,计数器不动。如果自始至终磨得结果都不为零,就把计数器加1。最后就统计了素数的个数。在这个问题中我当时还考虑了一个问题,就是要不要考虑这个数到底在不在素数与非素数的范围之类。因为比2小的数就不是素数,也不是非素数。我最后还是把这个判断的代码给写进去了,AC了。后来我把这行代码注销掉,结果还是AC了,也就是说,这个判断要不要无所谓。