社区讨论
10分求调
P1075[NOIP 2012 普及组] 质因数分解参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @m4w9e8uf
- 此快照首次捕获于
- 2024/12/20 12:37 去年
- 此快照最后确认于
- 2025/11/04 12:37 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,ans,cnt=1,a[100010];
void dfs(int n)
{
//1.出口
if(n==1)
{
ans++;
return;
}
//2.枚举的: n的因数 枚举范围在哪里?
for(int i=1;i<=cnt;i++)
{
if(a[i]>n) break;
if(n%a[i]==0)
{
dfs(n/a[i]);
}
}
return ;
}
int main()
{
cin>>n;
//把n的所有的因数放入a数组中
a[1]=n;
for(int i=2;i<=n/i;i++)
{
if(n%i==0)
{
a[++cnt]=i;
a[++cnt]=n/i;
}
}
if(a[cnt]==a[cnt-1]) cnt--;
sort(a+1,a+1+cnt);
dfs(n);
cout<<ans<<endl;
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...