如果你线性筛RE
查看原帖
如果你线性筛RE
699271
gaojizhe05楼主2024/3/10 22:11

线性筛只要筛到 1e61e6 如果 nn 还没有筛完那么剩下的 nn 也是一个质数,直接输出。如果没有这一步会RE或者WA。

for(int i=1;n!=1&&i<=k;i++)//加上i<=k,说明如果n没有筛完那么n是一个大质数。如果不加会RE
	while(n%p[i]==0){
		n/=p[i];
		printf("%d ",p[i]);
	}
if(n!=1) printf("%lld ",n);//如果线性筛完之后n仍然不是1,那说明剩下的n就是一个大质数,直接输出。如果没有加上会一直卡。
2024/3/10 22:11
加载中...