当前位置: 首页 > news >正文

做充气气模产品一般去哪些网站win10系统做网站

做充气气模产品一般去哪些网站,win10系统做网站,外贸出口剪标尾单,店铺推广软文范例一、思路 我们先用埃氏筛法,找出1048576范围内的素数,其实找出1024以内的就够了,但是1048576也不大,所以无所谓了。 然后把输入的数字不断的判断与每个素数是否整除,然后把输入的数变为很多个素数相乘的形式&#xf…

一、思路

我们先用埃氏筛法,找出1048576范围内的素数,其实找出1024以内的就够了,但是1048576也不大,所以无所谓了。

然后把输入的数字不断的判断与每个素数是否整除,然后把输入的数变为很多个素数相乘的形式,最后素数的个数就是这个X-fcactor chains的长度。

然后种类数的话,需要把这些素数写成次方的形式,比如200=(2^3)*(5^2),然后针对2,5,dfs,判断每个数乘上去与不乘上去的情况,一直到每个数都乘上去的情况是递归出口,然后结果+1.

例如100=(2^2)*(5^2)

2^0*5^0->2^1*5^0->2^2*5^0->2^2*5^1->2*2*5^2

2^0*5^0->2^1*5^0->2^1*5^1->2^2*5^1->2*2*5^2

2^0*5^0->2^1*5^0->2^1*5^1->2^1*5^2->2*2*5^2

2^0*5^0->5^1*2^0->2^1*5^1->2^2*5^1->2*2*5^2

2^0*5^0->5^1*2^0->2^1*5^1->2^1*5^2->2*2*5^2

2^0*5^0->5^1*2^0->2^0*5^2->2^1*5^2->2*2*5^2

这样也就得出6种,(算式中,我用2^5代表2的5次方,2*2*5^2代表2的平方乘以5的平方。

二、代码

#include <iostream>
#include <set>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
bool isPrime[1049007];
int n = 1049007, p;
vector<int> primeVector;
vector<int> facArray;
vector<int> distinctArray;
vector<int> countArray;
ll ansCount = 0;
int dfsArray[100];
void sieve()
{for (int i = 0; i <= 1049000; i++){isPrime[i] = true;}isPrime[0] = false, isPrime[1] = false;for (int i = 1; i * i <= 1049000; i++){if (!isPrime[i]){continue;}for (int j = i * 2; j <= 1049000; j += i){isPrime[j] = false;}}
}
void initPrimeVector()
{for (int i = 0; i <= 1049000; i++){if (isPrime[i]){primeVector.push_back(i);}}
}
void getFacArray()
{for (int i = 0; i < primeVector.size(); i++){if (isPrime[p]){facArray.push_back(p);break;}else if (p <= 1){break;}int primeNumber = primeVector[i];while (p % primeNumber == 0){facArray.push_back(primeNumber);p = p / primeNumber;}}
}
void flushVector()
{if (distinctArray.size() > 0){distinctArray.clear();}if (countArray.size() > 0){countArray.clear();}if (facArray.size() > 0){facArray.clear();}
}
void calc()
{map<int, int> countMap;set<int> distinctSet;for (int i = 0; i < facArray.size(); i++){countMap[facArray[i]] = 0;distinctSet.insert(facArray[i]);}for (int i = 0; i < facArray.size(); i++){int count = countMap[facArray[i]];countMap[facArray[i]] = count + 1;}for (set<int>::iterator ite = distinctSet.begin(); ite != distinctSet.end(); ite++){int number = *ite;distinctArray.push_back(number);}sort(distinctArray.begin(), distinctArray.end());for (int i = 0; i < distinctArray.size(); i++){countArray.push_back(countMap[distinctArray[i]]);}
}
void dfs(int sum)
{if (sum == facArray.size()){ansCount++;return;}for (int i = 0; i < distinctArray.size(); i++){if (dfsArray[i] < countArray[i]){dfsArray[i]++;dfs(sum + 1);dfsArray[i]--;}}
}
int main()
{sieve();initPrimeVector();while (~scanf("%d", &p)){ansCount = 0;getFacArray();calc();vector<int> array;for (int i = 0; i < distinctArray.size(); i++){dfsArray[i] = 0;}dfs(0);printf("%d %lld\n", facArray.size(), ansCount);flushVector();}return 0;
}

http://www.yayakq.cn/news/516045/

相关文章:

  • 网站制作的评价wordpress上传文件
  • 福建网站制作公司企业网上管理系统
  • 专门做字体设计的网站网站设计说明范文
  • 建站之星安装说明做的比较好的p2p网站
  • 视频网站系统开发南通外贸建站
  • 广州海珠网站设计效果好的东莞品牌网站建设
  • 域名备案 填写网站信息吗做商业网站去哪里弄好
  • 专门做旅游攻略的网站有哪些加工平台都有哪些
  • 站长工具如何使用网络规划设计师教程第二版电子书
  • 网站推广的软文福建住房与城乡建设网站
  • 购物建设网站资深的金融行业网站开发
  • 网站开发求职简历服装网站
  • 六安网站制作费用装修公司排名
  • 如何做一个单页面的网站深圳公司注册开户
  • 家政服务网站建设电商主图制作软件
  • 服装企业网站建设策划书内网穿透做网站能查到网站ip吗
  • 系统的php网站建设建e网全景图合成教程
  • 郑州做网站排名公司哪家好样式网站
  • 延边州建设局网站公司简介宣传册设计样本图片
  • 罗湖网站建设价格wordpress 看不到图片
  • 网站建设突出特色做网站制作的公司
  • 网站建设 中关村网站建设会议讲话
  • 现在都有什么网站工作室兰州网站seo分析
  • 网站一年多少钱?4核8g云服务器
  • 网站备注查询网易企业邮箱app叫什么名字
  • 网站站外优化iis配置网站无法访问
  • 退工在那个网站上做网站建设开发语言与平台
  • 西安创意网站建设网站安全维护
  • ps做淘宝网站导航栏国家建设部网站官网
  • 上海青浦房地产网站建设wordpress 的分享插件下载地址