C++作业7
2016-06-05 16:47
549 查看
项目1:素数和回文
项目2:最大公约和和最小公倍数
#include<iostream> using namespace std; int isPrimer(int n)//判断素数 { int i,j=1; for(i=2;i<n;i++) if(n%i==0) { j=0; break; } return j; } int isPalindrome(int num) //判断回文 { int temp=0; for(int n=num;n;n/=10) temp=temp*10+n%10; return temp==num; } int main() { const int M=100; int i,j=0,m=0,n=0,k=0,p,r; int a[M],b[M],c[M],d[M]; for(i=2;i<=300;i++) { if(isPrimer(i)) { a[j]=i; j++; r=i; p=0; while(r!=0) { p=p*10+r%10; r=r/10; } if(isPrimer(p)) { d[k]=i; k++; } } if(isPalindrome(i)) { b[m]=i; m++; } if(isPrimer(i) && isPalindrome(i)) { c =i; n++; } } cout<<"300以内的所有素数有:"<<endl; for(i=0;i<j;i++) cout<<a[i]<<"\t "; cout<<endl; cout<<"300以内的所有回文数有:"<<endl; for(i=0;i<m;i++) cout<<b[i]<<"\t"; cout<<endl; cout<<"300以内的所有回文素数有:"<<endl; for(i=0;i<n;i++) cout<<c[i]<<"\t"; cout<<endl; cout<<"300以内的所有可逆素数有:"<<endl; for(i=0;i<k;i++) cout<<d[i]<<"\t"; cout<<endl; return 0; }
项目2:最大公约和和最小公倍数
#include <iostream> using namespace std; int fun1(int m,int n) { int r; while(n!=0) { r=m%n; m=n; n=r; } return m; } int fun2(int m,int n) { int t; t=(m*n)/(fun1(m,n)); return t; } int main() { int a,b; cout<<"请输入两个数:"; cin>>a>>b; cout<<"最大公约数是:"; cout<<fun1(a,b)<<endl; cout<<"最小公倍数是:"; cout<<fun2(a,b)<<endl; return 0; }