#9659: 雖然試了很久且呈壓線成功,但還是有問題


myahi1234567 (andy chen)

學校 : 不指定學校
編號 : 38866
來源 : [114.34.185.252]
最後登入時間 :
2024-02-21 17:00:21
a007. 判斷質數 | From: [1.34.18.247] | 發表日期 : 2015-02-16 16:48

雖然說是成功,也用到建表,但看了很多文章,還是覺得自己的程式碼可以再更快,請問有高手能幫忙看一下嗎,小弟還是剛學一個學期程式的菜鳥

秒數1.8s 572KB

 

#include<iostream>

#include<vector>

using namespace std;

//46341是2147483647的根號

const int MAX=46341;

vector<int>Primer;

 

void isPrime()

{

    unsigned var,val,multi;

    vector<bool>Prime(MAX);

//216是46340的根號 

    for(var=2;var<=216;var++)

    {

        if(!Prime[var])

        {

            for(multi=(MAX-1)/var,val=var*multi;multi>=var;multi--,val-=var)

            {

                if(!Prime[multi])

                {

                    Prime[val]=true;

                }

            }

        }

    }

    for(var=2;var<MAX;var++)

    {

        if(!Prime[var])

        {

            Primer.push_back(var);

        }

    }

}

 

int main()

{

    int count=0,var;

    vector<int>::iterator ite;

    isPrime();

    int x;

    while(cin>>x)

    {  

        for(ite=Primer.begin(),var=*ite;(var<x)&&(ite!=Primer.end());ite++,var=*ite)

        {

            if(x%(*ite)==0)

            {

                count++;

                cout<<"非質數"<<endl; 

                break;

            }

        }

        if(count==0)

        {

            cout<<"質數"<<endl; 

        }

        count=0;

    }

    return 0;

 
#9667: Re:雖然試了很久且呈壓線成功,但還是有問題


onion_d (新帳號是炭烤海苔呦~話說我的校內排名被擠到第四頁了學妹超棒d...)

學校 : 臺北市立第一女子高級中學
編號 : 45960
來源 : [140.113.126.69]
最後登入時間 :
2018-04-15 10:53:49
a007. 判斷質數 | From: [124.9.128.233] | 發表日期 : 2015-02-20 21:17

 我不知道 <vector> 是甚麼東西

但你要不要試試看

#include<cmath>  中的  開根號 sqrt(x)酷喔



 
#9699: Re:雖然試了很久且呈壓線成功,但還是有問題


myahi1234567 (andy chen)

學校 : 不指定學校
編號 : 38866
來源 : [114.34.185.252]
最後登入時間 :
2024-02-21 17:00:21
a007. 判斷質數 | From: [163.25.118.196] | 發表日期 : 2015-03-08 05:36

 我不知道 是甚麼東西

但你要不要試試看

#include  中的  開根號 sqrt(x)酷喔



 


因為這題時間吃很重,所以我就先自己算了XD

 

vector 我也是剛學的 ,書上說他是一個template,我只知道這麼多了 

 
#9702: Re:雖然試了很久且呈壓線成功,但還是有問題


a127000555 (OAO)

學校 : 臺北市私立薇閣高級中學
編號 : 31134
來源 : [123.194.35.34]
最後登入時間 :
2024-11-02 22:10:07
a007. 判斷質數 | From: [114.32.10.109] | 發表日期 : 2015-03-08 13:08

 我不知道 是甚麼東西

但你要不要試試看

#include  中的  開根號 sqrt(x)酷喔



 


因為這題時間吃很重,所以我就先自己算了XD

 

vector 我也是剛學的 ,書上說他是一個template,我只知道這麼多了 

vector是一個動態陣列 
vector的空間隨著你加入的東西而變大 
可以節省不必要的空間(應該吧)


 
ZeroJudge Forum