题目链接:https://vjudge.net/problem/POJ-3421
题意:输入1个X,求解序列1,a0,a1,a2......am(am=X),其中满足任意i(ai%ai-1==0),求解最大的m和满足的序列个数
求解X的质因子个数即为m,再算出所有质因子的全排列个数。
n=4时,质因子{2,2},m为2,全排列只有一种
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<vector>
#include<cstring>
#define LL long long
using namespace std;
#define N 1100000
int a[1100000];
void is_sushu()
{
memset(a,0,sizeof(a));//对数组a进行初始化为0,不是素数的标记为1,剩下为0的就是素数了
a[1]=1;//1既不是素数也不是合数,先标记为0
for(int i=2; i<=sqrt(N); i++)
{
if(a[i]==0)//如果i是素数
{
for(int j=2; j*i<=N; j++) //循环标记的范围是i*j<N
{
a[i*j]=1;//如果i是素数,那么i*j肯定不是素数