【算法】计算质数

    static boolean zhishu(int a) {
        int b=a/2;
        int i=2;
        for(;i<=b;i++) {
            if(a%i==0)
                return false;
            b=a/i;
        }
        return true;
    }

原文地址:https://www.cnblogs.com/LPworld/p/11175362.html

时间: 2024-10-11 18:06:35

【算法】计算质数的相关文章

Eratosthenes筛选法计算质数

<C和指针>第6章第4道编程题: 质数就是只能被1和本身整除的数.Eratosthenes筛选法是一种计算质数的有效方法.这个算法的第一步就是写下所有从2至某个上限之间的所有整数.在算法的剩余部分,遍历整个列表并剔除所有不是质数的整数. 后面的步骤是这样的.找到列表中的第1个不被剔除的数(也就是2),然后将列表后面所有逢双的数都剔除,因为它们都可以被2整除,因此不是质数.接着,再回到列表的头部重新开始,此时列表中第一个尚未被剔除的第1个数是3,所以在3之后把每逢第3个数(3的倍数)剔除.完成这

Canopy算法计算聚类的簇数

Kmeans算是是聚类中的经典算法.步骤例如以下: 选择K个点作为初始质心 repeat 将每一个点指派到近期的质心,形成K个簇 又一次计算每一个簇的质心 until 簇不发生变化或达到最大迭代次数 算法中的K须要人为的指定.确定K的做法有非常多,比方多次进行试探.计算误差.得出最好的K.这样须要比較长的时间.我们能够依据Canopy算法来粗略确定K值(能够觉得相等).看一下Canopy算法的过程: (1)设样本集合为S.确定两个阈值t1和t2,且t1>t2. (2)任取一个样本点p.作为一个C

采用三种方法计算质数,并比较运行时间

#include<iostream> #include<time.h> #include<vector> using namespace std; #define N 100000000 char a[N/8+1]; class Time { clock_t clockBegin; clock_t clockEnd; public: void Start() { clockBegin = clock(); } int End() { clockEnd = clock()

小算法-计算下一个排列

2 8 5 3 1 1.从后往前,找到第一个逆序的数 pivot 2.从后往前,找到第一个比pivot大的数 change 3.交换 pivot 和 change的值 4.把pivot这个位置后面的数 reverse,就是 8 5 2 1变成 1 2 5 8 最终为3 1 2 5 8 #include <iostream> #include <vector> #include <algorithm> using namespace std; /* * num.begin

算法 计算多个顺序区间的总长

List<Point> list = Arrays.asList(new Point(1, 5), new Point(2, 3), new Point(2, 8), new Point(9, 13)); int sum = list.get(0).y - list.get(0).x,currenty=list.get(0).y; Point pnext; for (int i = 1, len = list.size(); i < len; i++) { pnext = list.ge

Fp关联规则算法计算置信度及MapReduce实现思路

说明:參考Mahout FP算法相关相关源代码. 算法project能够在FP关联规则计算置信度下载:(仅仅是单机版的实现,并没有MapReduce的代码) 使用FP关联规则算法计算置信度基于以下的思路: 1. 首先使用原始的FP树关联规则挖掘出全部的频繁项集及其支持度:这里须要注意,这里是输出全部的频繁项集,并没有把频繁项集合并,所以须要改动FP树的相关代码,在某些步骤把全部的频繁项集输出:(ps:參考Mahout的FP树单机版的实现,进行了改动,暂不确定是否已经输出了全部频繁项集) 为举例简

欧几里德算法计算最大公因数

欧几里德算法计算最大公因数 算法通过连续计算余数知道余数是0为止没最后的非零余数就是最大公因数. /*************************************************** code writer : EOF code file : gcd.c code date : 2014.09.18 e-mail : [email protected] description : This is a implementation of GCD :) If there is s

编程算法 - 计算一个数的所有组合数 代码(C++)

计算一个数的所有组合数 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 计算一个数的组合数, 使用递归进行求解. 如果计算3位的组合数, 首先任选固定一位, 然后计算其余两位的组合数, 最后组合至一起. 如 1 + [23, 32] = 123, 132; 在固定其余位数, 如 2 + [13, 31] = 213, 231;  3 + [12, 21] = 312, 321; 程序分为两步分, 一个删除任意位置的一个元素, 一个是递归求解组合

算法-计算阶乘n!末尾0的个数

算法逻辑转载自计算阶乘n!末尾0的个数: 问题描述    给定参数n(n为正整数),请计算n的阶乘n!末尾所含有"0"的个数.    例如,5!=120,其末尾所含有的"0"的个数为1:10!= 3628800,其末尾所含有的"0"的个数为2:20!= 2432902008176640000,其末尾所含有的"0"的个数为4. 计算公式    这里先给出其计算公式,后面给出推导过程.    令f(x)表示正整数x末尾所含有的&q