#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他還是輸出質數耶
怎麼會這樣?
#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
#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;
}