质因数分解
程序:
int prime[1010], prime_len;
void PRIME_FACTORIZATION(int x)
{
prime_len = 0;
int i, j;
for(i = 2; i * i <= x; i ++)
if(x % i == 0)
{
prime[++ prime_len] = i;
for(x /= i; x % i == 0; x /= i)
;
}
if(x >= 2)
prime[++ prime_len] = x;
}
具体分析:
见欧拉函数
因数分解
程序:
#include<iostream>
#include<stdio.h>
#include<memory.h>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
int i;
for(i = 1; i <= n; i ++)
if(n % i == 0)
printf("%d\n", i);
return 0;
}
嗯,纯朴素
吐槽
为什么时间复杂度就差这么多呢?
因数分解应该能优化吧...
那要怎么优化呢...