继上贴,我代码又有问题了
  • 板块学术版
  • 楼主Aakw_Tea
  • 当前回复13
  • 已保存回复13
  • 发布时间2024/7/14 18:31
  • 上次更新2024/7/14 20:16:22
查看原帖
继上贴,我代码又有问题了
1211960
Aakw_Tea楼主2024/7/14 18:31

评测出来运行错误,请DALAO帮忙康康%%%,玄关

素数-大数据

题目描述:

素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=35,所以15不是素数。又如,12=62=43,所以12也不是素数。另一方面,13除了等于131以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。 你的任务是计算出所有小于等于给定正整数的素数个数(我们认为1不是素数) 。

输入

输入文件中包含多个测试数据。每个测试数据占一行,为一个正整数N(0<N≤10000000),即给定正整数。测试数据一直到文件尾。

输出

对输入文件中的每个正整数,输出所有小于等于给定它的素数个数。

样例输入

2 3 4 5 9

样例输出

1 2 2 3 4

代码:

//码风不好,请各位DALAO见谅
#include<bits/stdc++.h>
using namespace std;
bool prime[100000001];
int maxn=-1,n[100000006],k=0;
int main(){
	while(cin>>n[++k]){
		maxn=max(n[k],maxn);
	}
  //i式素数筛选
 	for(int i=2;i<=maxn;i++){
 		if(prime[i]==0){
 			for(int j=i+i;j<=maxn;j=j+i){
 				prime[j]=1;
			}
		}
	}
	for(int i=1;i<k;i++){
		int lj=0;
		for(int j=2;j<=n[i];j++){
			if(prime[j]==0)lj++;
		}
		cout<<lj<<endl;
	}
    return 0;
}
2024/7/14 18:31
加载中...