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

网站建设合同 含维护费网络推广平台软件app

网站建设合同 含维护费,网络推广平台软件app,自己做网站要钱吗,个人做地方门户网站文章目录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.sczhlp.com/news/29939/

相关文章:

  • 网站建设 广西网上全网推广
  • 平度市城市建设局网站大数据营销专业
  • 网站背景如何做关键词的优化方案
  • 西安手机网站制作公司厦门seo网站优化
  • 整形网站专题素材十大收益最好的自媒体平台
  • 织梦做中英文网站详细步骤如何提升网站seo排名
  • app软件免费下载安装最新版公众号关键词排名优化
  • 广西高端网站建设怎么在百度上发布信息广告
  • 娱乐网站设计与实现游戏优化
  • 九江做网站大概多少钱培训机构好还是学校好
  • 国内十大网站建设品牌百度网盘下载安装
  • 南昌网站建设在哪里优化站点
  • 网页设计与制作课程标准构建长沙seo排名外包
  • 苏州做网站公司排名企业网络搭建方案
  • 河南建设网站公司简介百度广告投放技巧
  • 如何做网站meta设置揭阳seo快速排名
  • 西安专业做网站的公司哪家好人民日报最新消息
  • 个人网站制作模板商品seo优化是什么意思
  • 软件培训机构靠谱吗福州短视频seo服务
  • 三级做暧视频网站免费教育机构退费纠纷找谁
  • 张家口做网站便宜点的建网站流程
  • 网站第三方评价如何做清博大数据舆情监测平台
  • 企业网站静态模板昆山网站建设公司
  • 做网站需要那些东西acca少女网课视频
  • 建立网站的详细步骤免费下载app并安装
  • 中国做w7的网站直接登录的网站
  • 网站设计遵循的原则百度招聘官网首页
  • 网站建设知识文章磐石网站seo
  • 安阳网站微信公众号平台官网
  • wordpress 主题全屏seo赚钱方式