• 题目1040:Prime Number===========Time Limit Exceed


    请注意一下的WA和AC之间只有isprime函数存在区别:如何缩小运行的时间,,

    the WA:

    #include<stdio.h>
    #include<cmath>
    
    int isprime(int n);
    int main()
    {
       int m,j,a[10001],k=1;
         a[0]=2;
       for (j=3;j<=104729;j+=2)
         if (isprime(j)==1)
             a[k++]=j;
       while(scanf("%d",&m)!=EOF)
       {
              printf("%d
    ",a[m-1]);  
       }  
       return 0;    
    }
    int isprime(int n)  //判断素数的方法 
    {
        int i=0;
        int k=(int)sqrt(n);
        for(i=2;i<=k;k+2555)
         if (n%i==0) break;
         if (i>k) return 1;
         else return 0; 
    }

    the AC:

    #include<iostream>
    #include<cmath>
    using namespace std;
    int isPrime(int n);
    int main()
    {
        int i,j,flag,s=1,k,A[10000];
        A[0]=2;
        for(i=3;i<=104729;i+=2)//求出前10000个素数
        {
            if(isPrime(i))
                A[s++]=i;
        }
        while(cin>>k)//输出第k个素数
        {
            cout<<A[k-1]<<endl;
        }
        return 0;
    }
    int isPrime(int n)//判断素数,从3开始,减少不少计算量
    {
        int flag=1;
        int k=(int)sqrt(n*1.0)+1;
        if(n%2==0)flag=0;
        for(int i=3;i<=k;i+=2)
        {
            if(n%i==0)
                flag=0;
        }
        return flag;
    }
  • 相关阅读:
    一个改写MBR的例子
    explore没有桌面
    Guidance of Set up FTP Server
    重启远程机器(不登录远程机器下的重启)
    Eclipse 一些小知识
    check time period
    Scrum 冲刺——Day 1
    Scrum 冲刺——Day 2
    初学C语言
    CSS选择器
  • 原文地址:https://www.cnblogs.com/jianrenguo/p/6525142.html
Copyright © 2020-2023  润新知