素数筛算法
文章平均质量分 56
OnlyFeiger
青青子衿,悠悠我心。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
素数筛进阶(二)线性筛算法
求一个数的最小素因子#include<stdio.h>#define MAX_N 1000int prime[MAX_N + 5];void init() { for (int i = 2; i <= MAX_N; ++i) { if prime[i] continue; prime[++prime[0]] = i; for (int j = i ; j <= MAX_N; j+=i){ if (p原创 2021-02-04 16:54:58 · 270 阅读 · 0 评论 -
线性筛进阶(三): 求N的因子个数
线性筛算法思路利用线性筛判断如果N是素数,那么其因子的个数为2.一个非素数N可以写成素因子幂次连乘的形式.列如 12 的因子个数为 6 个, 可以用素因数的(幂次+1)乘素因数的(幂次+1) : 对素因数的不同取法都是12的因子.首先先完成线性筛函数,然后改写#define MAX_N 1000int prime[MAX_N + 5] = {0};void init() { for (int i = 2; i <= MAX_N; i++) {原创 2021-02-04 16:26:05 · 1622 阅读 · 0 评论 -
素数筛算法基础(一)
数组声明与初始化数组就是相同类型一组变量的集合.是变量就会在内存上占用一定的空间大小; int a ; //变量a 占 4个字节(32位); int a[100];// a[100]占 400个连续的空间;求素数(关于数组的算法框架)思路初始化一个数组 , 元素全部标记为 0;用 2 - n 的倍数去标记合数为1, 没有被标记过的数就没有因数,即为素数;优化: 这里我们可以从1 遍历到 根号 n; 因为 列如 9 = 3*3; 一个数的因数是成对存在的,判原创 2021-01-25 21:37:34 · 223 阅读 · 1 评论
分享