反击的号角(bugle)
输入格式:
输出格式:
输出仅一行,为一个整数,即没有帝国军重兵把守的地区数量。
样例输入:
3 3 4
4 5 4
样例输出:
2
数据范围:
时间限制:
1S
空间限制:
256M
提示:
这是一道很水的题,但是里面有很多坑,导致我被坑得只得0分!
首先讲一讲基本思路:读入这个数,看它加上上一个数是不是质数,就可以了。
但是!!!!!
它加上的不是上一个数,而是上一个符合条件的数!
其次,判断质数时,循环条件应该为“i<=sqrt(p)”,但是,如果你这么写,每循环一次都要算一次sqrt(),在判断,很耗时。所以应该用个变量存起来。
然后……
详见代码吧:
#include<cstdio>
#include<cmath>
int nowone,last=0,sum,m,n,moded,ans;
int guessing(int p)
{
if(p==2) return 1;
int ay=sqrt(p);
for(int i=2;i<=ay;i++)
if(p%i==0) return 0;
return 1;
}
int main()
{
scanf("%d %d %d",&m,&n,&moded);
ans=m;
for(int i=1;i<=n;i++)
{
scanf("%d",&nowone);
sum=last+nowone;
if(guessing(sum)==0) ans--;
else last=nowone%moded;
}
printf("%d",ans);
}
转载请注明原文地址: https://ju.6miu.com/read-679333.html