zoukankan      html  css  js  c++  java
  • 04-3. 统计素数并求和(20)

     

    时间限制
    400 ms
    内存限制
    32000 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    张彤彧(浙江大学)

    本题要求统计给定整数M和N区间内素数的个数并对它们求和。

    输入格式:

    输入在一行中给出2个正整数M和N(1<=M<=N<=500)。

    输出格式:

    在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

    输入样例:
    10 31
    
    输出样例:
    7 143


    我的第一次代码:
    #include<stdio.h>
    
    int main(){
      int M,N,count=0,sum=0,i,j;
      scanf("%d %d",&M,&N);
      
      for(i=M;i<=N;i++){
        
        int isPrime=1;
        
        for(j=2;j<i;j++){
          if(i%j==0){
              isPrime=0;
              break;  
          }  
        }
        
        if(isPrime==1){
          count++;
          sum+=i;
        }
      
      }
      printf("%d %d",count,sum);
      return 0;
      }
    
    运行之后发现4个测试点只有2个正确,后发现,没有把1不是素数进行考虑导致出错,进行改版之后:做一个小变换
    •     if(M==1)
    •     {M=2;
    •     }




    优化方法:

    #include<stdio.h>
    int main()
    {
        int n,i,M,N,sum=0,j=0;
        scanf("%d %d",&M,&N);
        if(M==1)
        {M=2;
        }
        for(n=M;n<=N;n++)
        {   
            for(i=2;i<n;i++)
           {
              if(n%i==0)
              break;
           }
           if(i==n)
           {
             j++;
             sum=sum+n;
           }
        }
        printf("%d %d",j,sum);
        return 0;
    }




























  • 相关阅读:
    scala 中的修饰符
    scala 主从构造器
    scala 伴生对象与伴生类
    scala 通过apply创建类的对象
    kali linux 全版本(以前的版本)镜像下载
    install python in wine
    SSH防爆破脚本
    SSH私用私钥登陆
    linux 内核提权
    Windows下MYSQL读取文件为NULL
  • 原文地址:https://www.cnblogs.com/VASSALKING/p/3930857.html
Copyright © 2011-2022 走看看