c++第七次作业
2016-06-05 17:05
337 查看
项目2:最大公约和和最小公倍数
项目1:素数和回文
#include <iostream> using namespace std; int temp; void F1(int m,int n) { int t; if(m<n) { F1(n,m); } else { while(n!=0) { t=m%n; m=n; n=t; } temp=m; } } int F2(int m,int n) { int t; t=(m*n)/temp; return t; } int main(int argc,char*argv[]) { int m,n; cout<<"请输入两个数:"<<endl; cin>>m>>n; F1(m,n); cout<<"最大公约数为:"<<temp<<endl; cout<<"最小公倍数为:"<<F2(m,n)<<endl; return 0; }
项目1:素数和回文
#include<iostream> using namespace std; int F1(int n) { int i; for(i=2;i<n;i++) { if(n%i==0) break; } if(i==n) return 1; else return 0; } int F2(int n) { int i,x,y,z; y=n%10; x=n/10%10; z=n/100; if(n<10) i=n; else if(n<100) i=y*10+x; else i=y*100+x*10+z; if(i==n) return 1; else return 0; } int F3(int n) { int i,x,y,z; y=n%10; x=n/10%10; z=n/100; if(n<10) i=n; else if(n<100) i=y*10+x; else i=y*100+x*10+z; return i; } void main() { int n,i=0,j=0,p=0,q=0,k; int a[300]={0},b[300]={0},c[300]={0},d[300]={0}; for(n=2;n<=300;n++) { if(F1(n)==1) a[i++]=n; if(F2(n)==1) b[j++]=n; if((F2(n)==1)&&(F1(n)==1)) c[p++]=n; if((F1(F3(n))==1)&&(F1(n)==1)) d[q++]=n; } cout<<"300以内的所有素数为:"; for(k=0;k<i;k++) cout<<a[k]<<" "; cout<<endl; cout<<"300以内的所有回文数为:"; for(k=0;k<j;k++) cout<<b[k]<<" "; cout<<endl; cout<<"300以内的所有回文素数为:"; for(k=0;k<p;k++) cout<<c[k]<<" "; cout<<endl; cout<<"300以内的所有可逆素数为:"; for(k=0;k<q;k++) cout<<d[k]<<" "; cout<<endl; }