0分 感觉思路应该是正确的 但是不对……麻烦大佬执教 感谢!
查看原帖
0分 感觉思路应该是正确的 但是不对……麻烦大佬执教 感谢!
803133
CYF123469楼主2022/10/17 21:31
#include <iostream>
using namespace std ;
bool isPrime(int x)
{
	for(int i=1;i*i<=x;i++)
	{
		if(x%i==0)
		{
			return false;
		}
	}
	return true ;
}
int main()
{
	long long num1[1000],num2[1000] ;
	long long  n,sum=0,k=1;
	long long ans=1 ;
	cin>>n ;
	for(int e=1;e<=n;e++)
	{
		ans*=e ;
	}
	for(int i=1;i*i<=ans;i++)
	{
		if(ans==1) break ;
		else if(isPrime(i))
		{
			num2[k]=i ;
			while(ans%i==0)
			{
				ans/=i ;
				sum++ ;
			}
			num1[k]=sum ;
			sum=0 ;
			k++ ;
		}
	}
	for(int j=1;j<=k;j++)
	{
		cout<<num2[j]<<" "<<num1[j]<<endl ;
	}
	return 0 ;
}
2022/10/17 21:31
加载中...