第5个点就差0.2秒,怎么办啊?
查看原帖
第5个点就差0.2秒,怎么办啊?
566190
我是歌者楼主2022/3/18 18:30

代码如下,最后一个点差0.2秒,其他全AC

#include<bits/stdc++.h>
using namespace std;
int a(int n){
	if (n<2) return 0;
    if (n==2) return 1;
	for(int i=2;i<=n/i;i++){
		if(n%i==0) return 0;
	}
	return 1;
}
int arr[10010]={0};
int main(){
	int n,x;
	scanf("%d",&n);
	for(int i=2;i<=n;i++){
		x=i;
		for(int zs=2;zs<=i;zs+=1){
			while(a(zs)==1 && x%zs==0 && x>1){
				arr[zs]++;
				x/=zs;
			}
		}
	}
	for(int i=2;i<=n;i++){
		if(arr[i]!=0){
			printf("%d %d\n",i,arr[i]);
		}
	}
	return 0;
}

c++的

2022/3/18 18:30
加载中...