代码如下,最后一个点差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++的