C++ 任意输入一个100以内 质数 然后列出他前面的5个质数
C++ 求解,自己算了好几遍,总是不通,这是这周的设计作业~求前辈~~
[解决办法]
#include <iostream>#include <math.h>using namespace std;void main(){ int num,flag=1,n=0; int a[100]={0}; cout<<"请输入一个质数"<<endl; int t; while (cin>>num) { if ((num>100)||(num==2)) { cout<<"此数超过100或等于2,请重新输入!"<<endl;//如果等于2,那么2的前面没有质数。 continue; } for ( t=2;t<=sqrt(num);t++) { if (num%t==0) { break; } } if (t>sqrt(num)) { cout<<num<<"是质数"<<endl; break; } else { cout<<num<<"是合数,请重新输入!"<<endl; } } cout<<num<<"之前的五个质数分别为"<<endl; for (int i=num-1;i>=2;i--) { flag=1; for (int j=2;j<=sqrt(i);j++) { if (i%j==0) { flag=0; break; } } if (flag==1) { n++; if (n==6) { break; } cout<<"第"<<n<<"个质数:"<<i<<endl; } }}