读书人

C++ 随便输入一个100以内 质数 然后列

发布时间: 2012-09-24 13:49:42 作者: rapoo

C++ 任意输入一个100以内 质数 然后列出他前面的5个质数
C++ 求解,自己算了好几遍,总是不通,这是这周的设计作业~求前辈~~

[解决办法]

C/C++ code
#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;      }  }} 

读书人网 >C++

热点推荐