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

网站排名在哪里优化公司网站建设应包含哪几个板块

网站排名在哪里优化,公司网站建设应包含哪几个板块,安卓优化大师下载安装,最牛的SEO教程网站文章目录1. 素数判定2. 素数筛选法3. 质因数分解4. 求一个数的约数5. 求两个数的最大公约数(GCD)6. 求两个数的最小公倍数(LCM)1. 素数判定 判定从 2 到sqrt(n)依次能否把 n 整除,若存在可以整除的数则说明 n 不是素数…

文章目录

    • 1. 素数判定
    • 2. 素数筛选法
    • 3. 质因数分解
    • 4. 求一个数的约数
    • 5. 求两个数的最大公约数(GCD)
    • 6. 求两个数的最小公倍数(LCM)

1. 素数判定

判定从 2 到sqrt(n)依次能否把 n 整除,若存在可以整除的数则说明 n 不是素数,若都不可以整除则说明 n 是素数。

注意:2 是特殊的素数。

为什么到sqrt(n)就可以了呢?请观察下面两个合数的例子:

30 分解为两个因数相乘:

  • 2 x 15
  • 3 x 10
  • 5 x 6
  • 6 x 5
  • 10 x 3
  • 15 x 2

36 分解为两个因数相乘:

  • 2 x 18
  • 3 x 12
  • 4 x 9
  • 6 x 6
  • 9 x 4
  • 12 x 3
  • 18 x 2

发现当越过sqrt(n)后,得到的两个因数与sqrt(n)前相同(只是位置对调了而已),因此没有必要对sqrt(n)后的数进行试除。

#include <cstdio>
#include <cmath>
using namespace std;bool isPrime (int x){if (x == 2)return true;else{int bound = sqrt(x);for (int i = 2; i <= bound; i++)if (x % i == 0) return false;}return true;
}int main(){int n;while (scanf("%d", &n) != EOF){bool flag = isPrime(n);if (flag)printf("Yes\n");elseprintf("No\n");}return 0;
}

2. 素数筛选法

原理:

  • 2 是素数,把 2 后面所有能被 2 整除的数都划去;
  • 2 后面第一个没划去的数是 3,把 3 留下,3 后面所有能被 3 整除的数都划去;
  • 3 后面第一个没划去的数是 5,把 5 留下,5 后面所有能被 5 整除的数都划去;
  • 5 后面第一个没划去的数是 7,把 7 留下,7 后面所有能被 7 整除的数都划去;

注意:每次划去当前质数的倍数时,可能存在某些数被重复筛选的情况,如 8 既被 2 又被 4 筛选。在枚举筛选的时候可以进行剪枝,当 i 为素数时,注意到i * k (k < i)必定已经在求得 k 的某个素数因子时被标记过,因此可以从i * i开始。

#include <math.h>
#include <stdio.h>
#include <string.h>#define MAX 10000bool isPrime[MAX+1];int main(){int n;scanf("%d", &n);memset(isPrime, true, sizeof(isPrime));  // memset函数包含于string.h头文件中 for (int i = 2; i <= sqrt(n); i++){if (isPrime[i]){	// 发现是素数,下面将素数的倍数都标记为非素数for (int j = i * i; j < n; j += i)  // i*k(k<i)必定已经在求得k的某个素数因子时被标记过,因此从i*i开始 isPrime[j] = false;}}for (int i = 2; i < n; i++)if (isPrime[i]) printf("%d ", i);return 0;
}

3. 质因数分解

输入:

994

输出:

2 7 71

代码:

#include <math.h>
#include <stdio.h>
#include <string.h>#define MAX 10000bool isPrime[MAX+1];int main(){int n;scanf("%d", &n);memset(isPrime, true, sizeof(isPrime));  // memset函数包含于string.h头文件中 int bound = sqrt(n);// 标记素数 for (int i = 2; i <= bound; i++){if (isPrime[i]){	// 发现是素数,下面将素数的倍数都标记为非素数for (int j = i * i; j < n; j += i)  // i*k(k<i)必定已经在求得k的某个素数因子时被标记过,因此从i*i开始 isPrime[j] = false;}}// 分解质因数for (int i = 2; i <= bound; i++){if (isPrime[i]){  // 如果是质数,则开始试除 while (n % i == 0){		// 若发现能整除,则继续使用这个质数除下去 n = n / i;printf("%d ", i);}}} if (n > 1)	// 若除完后,结果不是1,说明剩下来的是质数 printf("%d", n);return 0;
}

4. 求一个数的约数

在自然数(0和正整数)的范围内,

4的正约数有:1、2、4。

6的正约数有:1、2、3、6。

10的正约数有:1、2、5、10。

12的正约数有:1、2、3、4、6、12。

15的正约数有:1、3、5、15。

18的正约数有:1、2、3、6、9、18。

20的正约数有:1、2、4、5、10、20。

注意:一个数的约数必然包括1及其本身。

#include <cstdio>
#include <cmath>
using namespace std;int main(){int n;while (scanf("%d", &n) != EOF){for (int i = 1; i <= sqrt(n); i++){if (n % i == 0){printf("%d %d ", i, n / i);}}printf("\n");}return 0;
}

5. 求两个数的最大公约数(GCD)

辗转相除法:两个整数的最大公约数等于其中较小的数和两数相除的余数的最大公约数,即gcd(a,b) = gcd(b, a mod b)

基本思想:分治。

原理:若整数 g 为 a、b 的最大公约数,则有:

a = g x l(1)

b = g x m(2)

a、b 又可以表示为:

a = b x k + r(即a / b = k···r)(3)

把(1)(2)代入到(3):

g x l = g x m x k + r,即r = g x (l - m x k)

注意到r = a mod b,因此a mod b = g x (l - m x k)(4)

联合(2)(4),这样问题变为了求 b 和 a mod b 的最大公约数:

b = g x m(2)

a mod b = g x (l - m x k)(5)

递归写法:

// 辗转相除法求最大公约数(12和18的最大公约数:6) 
int gcd (int a, int b){if (b == 0)return a;elsereturn gcd(b, a % b);
}

非递归写法:

// 辗转相除法求最大公约数(12和18的最大公约数:6) 
int gcd (int a, int b){while (b != 0){int rem = a % b;a = b;b = rem;}return a;
}

6. 求两个数的最小公倍数(LCM)

// 求最小公倍数(12和18的最小公倍数:36)
int lcm (int a, int b){return a * b / gcd(a, b);
}
http://www.yayakq.cn/news/623299/

相关文章:

  • win8风格门户网站怎么查公司的邮箱
  • 设计营销型网站域名珠海城乡建设网站
  • 手机上自己做网站点商城域名注册多少钱
  • 企业网站如何建设和推广做h5网站制作
  • 青岛做网站推广公司哪家好企业网站制作设计公司
  • 太原做企业网站的wordpress更改登录地址
  • 东莞企业网站搭建制作取消网站备案号
  • 永久免费的建站系统有哪些碧桂园事件全过程
  • 两学一做考试网站保险网站建设公司
  • 济南做网站公司排名直通车官网
  • 河南省建设厅官方网站网站推广公司官网
  • 网站建设方案说明书照片变年轻在线制作网站
  • 农产品销售平台seo难不难学
  • 做行业分析的网站旅游网站 静态模板
  • 网站建设的技术难点wordpress创建自定义页面
  • 温州企业网站开发酒店营销策略
  • 东软集团建设网站广西建设信息网
  • 网易建站模板宁波seo服务推广
  • 丰台seo网站关键词优化科技创新绘画
  • 广州网站设计公司济南兴田德润o评价页面简洁的导航网站
  • 做网站要用多少钱wordpress系统语言设置中文
  • 吉安网站建设吉安中山做网站企业
  • 网站架构招聘商品展示软件
  • 有模板做ppt的网站有哪些泉州学校网站开发
  • 网站活动专题页面阿里云服务器创建多个网站吗
  • 家装公司网站开发方案怎么知道网站被百度k了
  • 企业网站建站的专业性原则是指自己做的网页怎么连接到网站
  • 网站建设锚点链接什么叫静态网站
  • 开发网站的基本流程网站可以做动画轮播吗
  • 如网站站长如何对付黑客成都网站建设排行榜