分解质因数&阶乘&最大公因数(c++-入门

**

C++简单的小题目(分解质因数&阶乘&最大公因数)

**

Q1(分解质因数):
这题我们可以先设一个zyz(a,b)的函数,于是很简单的可以求出:

#include<bits/stdc++.h>
using namespace std;
int a[1000];	
int i=0;
void zyz(int n,int p)
{
	if(n==1)
	{
	return;
	}
	else if(n>1)
	{
		if(n%p==0)
		{
			a[i] = p;i++;zyz(n/p,p);
		}else
		{
			zyz(n,p+1);
		}
	}
}
int main()
{
	int n;
	cin>>n;
	cout<<n<<"=";zyz(n,2);
	cout<<a[0];
	for(int j =1;j<i;j++)
	{
		cout<<"*"<<a[j];
	}
	return 0;
}

//ACACAC!

Q2:(求 n!=?)
不多说了,直接上代码

#include <bits/stdc++.h>
using namespace std;
int jc(long n)
{
	long ans;
	if(n==1)ans=1;
	else
	ans=n*jc(n-1);	
	return ans;
}
int main()
{
	long n;cin>>n;cout<<jc(n); 
	return 0;
}

//ACACAC!
同样使用了一个函数jc(n)。
Q3(最大公因数):
此题提供2种算法,
W1:用do…while()循环求解:

#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <iomanip>	
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
	int m,n,r;
	cin>>m>>n;
	do
	{
		r=m%n;
		m=n;
		n=r;
	}
	while(r!=0);
	cout<<m<<endl;
	return 0;	
}

W2:我认为最无赖有意思的小函数:

#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
	return b?gcd(b,a%b):a;
}
int main()
{
	int n,m;cin>>n>>m;
	cout<<"gcd="<<gcd(n,m);
	return 0;
}

//ACACAC!
好啦,今天就分享这么多啦,谢谢大家滴支持!

猜你喜欢

转载自blog.csdn.net/AdamNZhang/article/details/107396793
今日推荐