#25035: 怎樣才能不逾時? C++


EXOL (Judy)

學校 : 中南大学
編號 : 146446
來源 : [27.52.122.40]
最後登入時間 :
2023-07-27 16:02:36
a007. 判斷質數 | From: [101.136.118.147] | 發表日期 : 2021-04-15 22:07

//a007: 判斷質數

 

#include <iostream>

using namespace std;

 

bool p[50001]; //陣列  //bool => ture&false 

int a, x, m;

 

inline void yn(){  //內嵌函數 

 

    for(x=0; x<50001; x++){

       

        if(p[x] && (a%x==0 && a!=x) ){

           

            cout<<"非質數";

            return;

        }

    }

        

    cout<<"質數";

}

             

 

 

int main(){

 

    for(x=0; x<50001; x++){

   

        p[x]=true; 

    } 

    

    p[0]=false; //沒有0 

    p[1]=false; //沒有1 

    

    for(x=0; x<=250; x++){

            

if(p[x]){

 

           m=2;

           

            do{

           

                p[x*m]=false;

                m++; 

                

                }

 

while(x*m<50001);

            

p[x]=true; 

        }                       

    }

    

    while(cin>>a){

   

        yn();

        cout << endl; 

    } 

    

    return 0;

}

 
#25039: Re:怎樣才能不逾時? C++


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [1.168.27.116]
最後登入時間 :
2024-03-31 17:58:15
a007. 判斷質數 | From: [36.233.38.194] | 發表日期 : 2021-04-16 13:11

這樣寫。離 ac 還有段距離

站內有很多質數相關的題目先練習。

 
ZeroJudge Forum