#include <iostream>
using namespace std;int GCD=1, LCM=0;intmain(){int m, n;intGCD_function(int x,int y);//声明函数求最大公约数intLCM_function(int p,int q);//声明函数求最小公倍数/*输入两个整数*/
cout <<"Please enter number:";
cin >> m;
cin >> n;
cout <<"Greater common divisor(m&n):"<<GCD_function(m,n)<<'\n';
cout <<"Least common multiple(m&n):"<<LCM_function(m,n)<< endl;return0;}intGCD_function(int x,int y){int i;for(i =1; i < x +1; i++){if(x % i ==0)if(y % i ==0)
GCD = i;}return GCD;}intLCM_function(int p,int q){GCD_function(p,q);
LCM =(p * q)/ GCD;return LCM;}
4.2 求一元二次方程的解
#include <iostream>
#include <cmath>
using namespace std;intmain(){double a=0, b=0, c=0;doubleOverZero(double x,double y,double z);doubleEqualZero(double x,double y,double z);doubleBelowZero(double x,double y,double z);
cout <<"Please enter a:";
cin >> a;
cout <<"Please enter b:";
cin >> b;
cout <<"Please enter c:";
cin >> c;if((b*b -4.0* a * c)>0)OverZero(a,b,c);elseif((b * b -4.0* a * c)==0)EqualZero(a,b,c);elseBelowZero(a, b, c);return0;}doubleOverZero(double x,double y,double z){double p=0,q=0;/*求根公式*/
p =(-y +sqrt(y * y -4.0* x * z))/(2.0* x);
q =(-y -sqrt(y * y -4.0* x * z))/(2.0* x);
cout <<"X1="<<p<<'\n'<<"X2="<<q<<endl;return0;}doubleEqualZero(double x,double y,double z){double p=0;
p=-(y /(2.0* x));
cout <<"X1=X2="<< p << endl;return0;}doubleBelowZero(double x,double y,double z){
cout <<"Not solution in real number field.";return0;}
4.3 判别素数
#include <iostream>
using namespace std;intmain(){int a=0;intPrime_number(int x);
cout <<"Please enter a number:";
cin >> a;Prime_number(a);return0;}intPrime_number(int x){int i,n=0;for(i =1; i < x;i++){if(x % i ==0){
n++;if(n >2){
cout <<"It isn't a prime number.";return0;}}}
cout <<"It is a prime number!";return0;}
4.4 求三个数的阶乘和
#include <iostream>
using namespace std;intmain(){int a=0,b=0,c=0;intfac(int x);
cout <<"Please enter a:";
cin >> a;
cout <<"Please enter b:";
cin >> b;
cout <<"Please enter c:";
cin >> c;
cout <<"a!+b!+c!="<<fac(a)+fac(b)+fac(c)<<endl;return0;}intfac(int x){long f;if(x <0){
cout <<"Data error, input value must over 0!";return-1;}elseif((x ==0)||(x ==1))
f =1;else
f =fac(x -1)* x;return f;}
4.5 求sinh(x)的值
#include <iostream>//#include <cmath>
using namespace std;intmain(){int a=0;doubleexp(int x);
cout <<"Please enter a:";
cin >> a;
cout <<"sinh(x)="<<(exp(a)-exp(-a))/(2.0)<<endl;return0;}doubleexp(int x){double f=1;double e =2.7182;int i;if(x <0){for(i =1; i <=-x; i++){
f = f * e;}
f =1.0/ f;}elseif(x ==0)
f =1;else{for(i =1; i <= x; i++){
f = f * e;}}return f;}
4.6 牛顿迭代法求一元三次方程的近似解
#include <iostream>
#include <cmath>
using namespace std;intmain(){double a,b,c,d,X0=0;doubleNewton(double x,double y,double z,double p,double X0);
cout <<"Please enter a:";
cin >> a >> b >> c >> d;
X0 =1;
cout <<"ax^3+bx^2+cx+b = 0, X0 = 1,x="<<Newton(a,b,c,d,X0)<<endl;return0;}doubleNewton(double x,double y,double z,double p,double X0){double n=X0,t=0;while(fabs(t-n)>1e-7){
t = n;
n = t -((x * t * t * t + y * t * t +
z * t + p)/(3.0* x * t * t +2.0* y * t + z));//taylor 展开到一阶}return n;}
4.7 哥德巴赫猜想
#include <iostream>
using namespace std;intmain(){int num;intgotbaha(int x);intprime(int y);
cin >> num;if(num <6|| num %2!=0)return0;gotbaha(num);return0;}intprime(int y){int i, temp =0;for(i =1; i < y; i++){if(y % i ==0){
temp++;if(temp >1)return0;}}return1;}intgotbaha(int x){int n=0, m=0,i=0;for(i =3; i < x; i++){
n = i;
m = x - n;if(prime(n)&&prime(m)){
cout << x <<"="<< n <<"+"<< m << endl;return0;}}
n = m = x /2;if(prime(n)&&prime(m)){
cout << x <<"="<< n <<"+"<< m << endl;return0;}return0;}