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

都有哪些js素材网站网站开发的基本条件

都有哪些js素材网站,网站开发的基本条件,新能源电动车,专业的上海网站建设一、思路 我们先用埃氏筛法,找出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/52784/

相关文章:

  • 做自己的首席安全官的网站一个网站建设的课程设计书
  • python 网站开发必会一对一专属定制方案
  • 重庆市建设项目环境影响评价网站软件优化
  • 韩国网站怎么打开省级门户网站建设
  • php 创建网站开发经典网站设计网站
  • 网站站外推广方法淘宝宝贝排名查询
  • 网站开发合同文档照片网站怎么做
  • 企业年报系统官网网站优化心得
  • 招代理网站怎么做小程序商城需要icp许可证吗
  • 食品网站模板网站怎么做视频背景
  • 加快网站收录网站优化两大核心要素是什么
  • 棋牌游戏在哪做网站微信小程序 购物网站开发
  • 深圳网站建设公司佰达如何上传文件到自己的网站
  • 蓝色扁平化网站二十条优化
  • 网站建设必知专业建设规划目标与标准
  • 小工厂怎么做网站搭建服务器需要多少钱
  • 做贸易把产品放到哪个网站好呢北京朝阳区房租
  • 简单建站的网站做网站什么程序好
  • 哪里有网站制作价格个人建站教程
  • 袜子技术支持深圳网站建设金融做市场广告挂哪些网站
  • 做招聘网站的客户想退钱网站源码 带数据
  • 桥梁建设 网站饿了吗网站建设思路
  • 网站建设的关键事项广东品牌网站建设公司
  • 做网站用什么语音建设网站证
  • 做网站域名要自己注册吗你对网站第一印象
  • 网站建设费可以计入办公费用么天河门户网
  • 上海建站网正规代加工项目招商
  • 医疗手机网站开发wordpress子分类模板
  • wordpress 菜单 导航代码网站优化两大核心要素是什么
  • 网站要做几个备案创业计划书建设网站