2 条题解

  • 1
    @ 2025-10-16 16:23:27
    #include<stdio.h>
    
    int main(){
    	int n;
    	scanf("%d",&n);
    	
    	int i;
    	int tot[1000];
    	for(i=0;i<n;i++){
    		scanf("%d",&tot[i]);
    	}
    	int k;
    	double count=0;
    	for(i=0;i<n;i++){
    		int isprime=1;
    		if(tot[i]==2){
    			count++;
    			continue;
    		}
    		if(tot[i]==1){
    			continue;
    		}
    		for(k=2;k<tot[i];k++){
    			if(tot[i]%k==0){
    				isprime=0;
    				break;
    			}
    		}
    		if(isprime==1){
    			count++;
    		}
    		
    	}
    	printf("%.2lf%%",count/n*100);
    	
    	return 0;
    	
    }
    
    • 0
      @ 2025-10-2 22:43:39

      分两步:先获得素数组,在判断(绝对不是因为刚写完判断素数的代码

      记得输出%用%%就好

      #include<stdio.h>
      #include<string.h>
      #include<stdlib.h> 
      #include<math.h>
      int sss=0;
      int ss[1000];
      
      int isp(int n){
      	int i;
      	if(n<2) return 0;
      	for(i=0;i<sss&&ss[i]*ss[i]<=n;i++){
      		if(n%ss[i]==0){
      			return 0;
      		}
      	}
      	return 1;
      }
      
      void finds(int max){
      	int num;
      	for(num=2;num<=max&&sss<1000;num++){
      		if(isp(num)){
      			ss[sss]=num;
      			sss++;
      		}
      	}
      }
      
      int main(){
      	int i,n,j;scanf("%d",&n);
      	int su=0;
      	int a[n];
      	finds(n);
      	for(i=0;i<n;i++){
      		scanf("%d",&a[i]);
      	}
      	for(i=0;i<n;i++){
      		if(isp(a[i])!=0){
      			su++;
      		}
      	}
      	double g=(su*1.0/n)*100;
      	printf("%.2lf%%",g);
          return 0;
      }
      
      • 1

      信息

      ID
      42
      时间
      1000ms
      内存
      256MiB
      难度
      5
      标签
      递交数
      371
      已通过
      133
      上传者