#2192: 奇怪~他只出現質數


joleen60626 (香蕉)

學校 : 國立臺南女子高級中學
編號 : 3947
來源 : [140.127.200.66]
最後登入時間 :
2012-11-21 10:27:00
a007. 判斷質數 | From: [218.165.51.52] | 發表日期 : 2009-07-23 22:27

#include<iostream>
#include<cmath>
using namespace std;

int main(){
    int a;
    cin>>a;
    for(int i=3;i<sqrt(a);i++){
            if(a%i==0){
                       cout<<"非質數"<<endl;
            }
             if(a%i!=0){
                       continue;
                       }
            }
            cout<<"質數"<<endl;
    system("pause");
    return 0;
}#include<iostream>
#include<cmath>
using namespace std;

int main(){
    int a;
    cin>>a;
    for(int i=3;i<sqrt(a);i++){
            if(a%i==0){
                       cout<<"非質數"<<endl;
            }
             if(a%i!=0){
                       continue;
                       }
            }
            cout<<"質數"<<endl;
    system("pause");
    return 0;
}

 

我的想法是...

一遇到可以整除a的數就輸出非質數

可是我輸入14他還是輸出質數耶

怎麼會這樣?

 
#2193: Re:奇怪~他只出現質數


morris1028 (碼畜)

學校 : 國立花蓮高級中學
編號 : 3529
來源 : [114.37.59.62]
最後登入時間 :
2021-07-12 19:00:43
a007. 判斷質數 | From: [118.161.223.46] | 發表日期 : 2009-07-23 22:33

#include
#include
using namespace std;

int main(){
    int a;
    cin>>a;
    for(int i=3;i            if(a%i==0){
                       cout<<"非質數"<            }
             if(a%i!=0){
                       continue;
                       }
            }
            cout<<"質數"<    system("pause");
    return 0;
}#include
#include
using namespace std;

int main(){
    int a;
    cin>>a;
    for(int i=3;i            if(a%i==0){
                       cout<<"非質數"<            }
             if(a%i!=0){
                       continue;
                       }
            }
            cout<<"質數"<    system("pause");
    return 0;
}

 

我的想法是...

一遇到可以整除a的數就輸出非質數

可是我輸入14他還是輸出質數耶

怎麼會這樣?

sqrt(14)=3....

因為你跑的範圍是3~3 當然沒有囉  最好是從2開始跑然後<=sqrt(N)

25的話 會變成2~4 所要要等於 →2~5 就會判斷不是了

 
#2240: Re:奇怪~他只出現質數


joleen60626 (香蕉)

學校 : 國立臺南女子高級中學
編號 : 3947
來源 : [140.127.200.66]
最後登入時間 :
2012-11-21 10:27:00
a007. 判斷質數 | From: [220.129.195.200] | 發表日期 : 2009-08-07 17:03

#include
#include
using namespace std;

int main(){
    int a;
    cin>>a;
    for(int i=3;i            if(a%i==0){
                       cout<<"非質數"<            }
             if(a%i!=0){
                       continue;
                       }
            }
            cout<<"質數"<    system("pause");
    return 0;
}#include
#include
using namespace std;

int main(){
    int a;
    cin>>a;
    for(int i=3;i            if(a%i==0){
                       cout<<"非質數"<            }
             if(a%i!=0){
                       continue;
                       }
            }
            cout<<"質數"<    system("pause");
    return 0;
}

 

我的想法是...

一遇到可以整除a的數就輸出非質數

可是我輸入14他還是輸出質數耶

怎麼會這樣?

sqrt(14)=3....

因為你跑的範圍是3~3 當然沒有囉  最好是從2開始跑然後<=sqrt(N)

25的話 會變成2~4 所要要等於 →2~5 就會判斷不是了



 

#include<iostream>
#include<cmath>
using namespace std;

int main(){
    int a;
    while(cin>>a){
    for(int i=2;i<=sqrt(a);i++){
            if(a%i==0)
                       cout<<"非質數"<<endl;
                       break;    //要怎麼讓它在這裡就重新回到while迴圈?要怎麼寫?break好像只會跳出一層迴圈耶
                                
             if(a%i>0)
                      continue ;
                     
                      }
            cout<<"質數"<<endl;
           
            }
    return 0;
    
  }

 
ZeroJudge Forum