C++作业7

来源:互联网 发布:如何在网络上做直销 编辑:程序博客网 时间:2024/05/21 11:16
最大公约数和最小公倍数
#include<iostream>  using namespace std;  int lcm;  int fun(int m,int n,int gcd)  {      int x;      x=m%n;      while(x)      {          m=n;          n=x;          x=m%n;      }      lcm=gcd/n;      return n;  }  int main()  {      int m,n,gcd;      cout<<"请输入两个整数:";      cin>>m>>n;      gcd=fun(m,n,m*n);      cout<<"最大公约数是"<<gcd<<endl;      cout<<"最小公倍数是"<<lcm<<endl;  }  
素数和回文
#include<iostream>  using namespace std;  inline int isPrimer(int n)  {      int k;      for(k=2;k<n;k++)      {          if(n%k==0)              break;      }      if(k==n)          return 1;      else          return 0;  }  inline int isPalindrome(int n)  {      int a,b,c,d;      b=n%10;      a=n/10%10;      c=n/100;      if(n<10) d=n;      else if(n<100) d=b*10+a;      else d=b*100+a*10+c;      if(d==n)          return 1;      else          return 0;  }  inline int fan(int n)  {      int a,b,c,d;      b=n%10;      a=n/10%10;      c=n/100;      if(n<10) d=n;      else if(n<100) d=b*10+a;      else d=b*100+a*10+c;      return d;  }  int main()  {      int n,m,i=0,j=0,p=0,r=0;      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[r++]=n;      }      cout<<"300以内的所有素数为:"<<endl;      for(m=0;m<i;m++)          cout<<a[m]<<" "<<"\t";      cout<<endl;      cout<<"300以内的所有回文数为:"<<endl;      for(m=0;m<j;m++)          cout<<b[m]<<" "<<"\t";      cout<<endl;      cout<<"300以内的所有回文素数为:"<<endl;      for(m=0;m<p;m++)          cout<<c[m]<<" "<<"\t";      cout<<endl;      cout<<"300以内的所有可逆素数为:"<<endl;      for(m=0;m<r;m++)          cout<<d[m]<<" "<<"\t";      cout<<endl;      return 0;  }  


0 0