直接暴力求
void factor(int n)
{
//除了1和自身的所有因子
for(int i=2; i<n; i++)
{
if(n%i == 0)
{
cout<<i<<" ";
continue;
}
}
}
运用
输入一个数N,求出2~N(包括N)之内的“黄金数”的个数。
黄金数即 除去1和它自身后,所有因子的乘积等于他本生的数:如 6 = 2*3
, 15 = 3*5
; 6,15
就是黄金数。
#include <iostream>
using namespace std;
int main()
{
long n, res=0;
cin>>n;
for(int i=6; i<=n; i++)
{
int ans = 1;
for(int j = 2; j< i; j++)
{
if(i%j == 0)
{
ans *= j;
continue;
}
}
if(ans == i)
{
res++;
//cout<<ans<<endl;
}
}
cout<<res<<endl;
return 0;
}