C++第七次作业

来源:互联网 发布:网络推广的收费标准 编辑:程序博客网 时间:2024/05/23 12:36
项目1:素数和回文#include<iostream>      using namespace std;      inline int isPrimer(int n)       {           int i;          for(i=2;i<n;i++)          {              if(n%i==0)                  break;          }          if(i==n)              return 1;          else              return 0;      }      inline int isPalindrome(int n)       {          int m,a,b,c;          b=n%10;          a=n/10%10;         c=n/100;        if(n<10) m=n;        else if(n<100) m=b*10+a;        else m=b*100+a*10+c;        if(m==n)              return 1;          else              return 0;      }       inline int fan(int n)      {          int m,a,b,c;          b=n%10;          a=n/10%10;         c=n/100;        if(n<10) m=n;        else if(n<100) m=b*10+a;        else m=b*100+a*10+c;           return m;      }      int main()      {          int n,i=0,j=0,p=0,q=0,m;          int a[300]={0},b[300]={0},c[300]={0},d[300]={0};          for(n=2;n<=300;n++)          {              if(isPrimer(n)==1)                  a[i++]=n;              if(isPalindrome(n)==1)                  b[j++]=n;              if((isPalindrome(n)==1)&&(isPrimer(n)==1))                  c[p++]=n;              if((isPrimer(fan(n))==1)&&(isPrimer(n)==1))                  d[q++]=n;          }          cout<<"300以内的所有素数为:"<<endl;          for(m=0;m<i;m++)              cout<<a[m]<<" ";          cout<<endl;          cout<<"300以内的所有回文数为:"<<endl;          for(m=0;m<j;m++)              cout<<b[m]<<" ";          cout<<endl;          cout<<"300以内的所有回文素数为:"<<endl;          for(m=0;m<p;m++)              cout<<c[m]<<" ";          cout<<endl;          cout<<"300以内的所有可逆素数为:"<<endl;          for(m=0;m<q;m++)              cout<<d[m]<<" ";          cout<<endl;          return 0;      }   

项目2:最大公约数和最大公倍数#include<iostream.h>  int bei;                                                       //定义全局变量:最小公倍数  int fun(int m,int n,int a)                                     //计算函数  {      int y;      y=m%n;      while(y)                                                   //碾转相除法求最大公约数      {          m=n;          n=y;          y=m%n;      }      bei=a/n;                                                   //最小公倍数=两数之积/最大公约数      return n;                                                  //返回最大公约数  }  void main()  {      int m,n,yue;      cout<<"请输入两个整数:";      cin>>m>>n;      yue=fun(m,n,m*n);                                          //取最大公约数      cout<<"最大公约数是"<<yue<<",最小公倍数是"<<bei<<endl;  }  

0 0