社区讨论

有没有大佬帮助一下

灌水区参与者 2已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@lzwpcphz
此快照首次捕获于
2024/08/16 20:45
2 年前
此快照最后确认于
2024/08/16 23:08
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
char zs(int x)
{
	for(int i=2;i<=x/i;++i)
	if(x%i==0) return false;
	return true;
}
int main()
{
	long long n,i=2,s=0,l=1,a[10001];
	cin>>n;
	while(n!=1)
	{
		if(n%i==0&&zs(i)==true)
		{
			s++;
			a[s]=i;
			n/=i;
		}
		else i++;
	}
	if(s==1)
	{
		cout<<a[s]<<endl;
		return 0;
	}
	for(i=1;i<=s;++i)
	{
		if(i==s) 
		{
			if(a[i]!=a[i-1])
			{
				cout<<a[i];
				break;
			}
			if(a[i]==a[i+1]) l++;
			if(l>=2&&a[i]!=a[i-1])
			{
				cout<<a[i]<<"^"<<l;
				l=1;
			}
		}
		else
		{
			if(a[i]!=a[i+1]&&l==1) cout<<a[i]<<" * ";
			if(a[i]==a[i+1]) l++;
			if(l>=2&&a[i]!=a[i+1])
			{
				cout<<a[i]<<"^"<<l<<" * ";
				l=1;
			}
		}
	}
	return 0;
} 
大佬们,是真的不会,没办法了,球球了。

回复

8 条回复,欢迎继续交流。

正在加载回复...