实验5
1.题目描述
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; int s(int n){ for(int i=2;i<=int(sqrt(double(n)));i++) if(!(n%i)) return 0; return 1; } void main(){ int n; cin>>n; for(int i=2;i<=n/2;i++){ if(s(i) && s(n-i)) cout<<i<<" "<<n-i<<endl; } getchar(); getchar(); }
2.题目描述
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; void main(){ int n,i=2,s=0; cin>>n; while(n!=1){ while(!(n%i)) n/=i,s+=i; i++; } cout<<s<<endl; getchar(); getchar(); }
3.题目描述
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; int gcd(int x,int y) { if(!y) return x; else return gcd(y,x%y); } void main(){ int n,m; cin>>n>>m; cout<<gcd(n,m)<<endl; getchar(); getchar(); }
4.题目描述
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; double p(double x,int n){ if(!n) return 1.0; if(n==1) return x; return (double(2*n-1)*x*p(x,n-1)-double(n-1)*p(x,n-2)/2); } void main(){ double x; int n; cin>>x>>n; cout<<p(x,n)<<endl; getchar(); getchar(); }
5.题目描述
根据级数展开式计算f (x)。
1.编写函数double fun(double x),计算f (x)的近似值,直到最新项的绝对值小于10-6;
2. 编写主函数main,在主函数中建立循环,循环中由键盘输入x值,若x的绝对值小于1;调用函数fun计算f (x)的近似值, 并输出计算结果。
3. 若x的绝对值大于1,则输出“输入参数错误”,程序运行结束。
【测试数据与运行结果】
测试数据:x=0.3
运行结果:f(x)=0.444441
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iomanip> using namespace std; double f(double x){ double s,u=1.0,d=2.0,w=1.0,ans=0; s=u/d; while(fabs(s)>=1e-6){ ans+=s; double y=u+d; u=d;d=y; w*=-(x*x); s=w*u/d; } return ans; } void main(){ double x; cin>>x; if(fabs(x)>1) cout<<"输入参数错误"<<endl; else cout<<setprecision(6)<<f(x)<<endl; getchar(); getchar(); }