C/C++编程学习

您所在的位置:网站首页 素数和质数叫法来由 C/C++编程学习

C/C++编程学习

2024-07-17 06:28| 来源: 网络整理| 查看: 265

题目链接

题目描述

给定 2 个整数 a, b 求出它们之间包括(a, b)的所有质数的和。

输入格式 两个整数 a, b (1 ≤ a, b ≤ 105)。

输出格式 一个整数,表示范围内的质数和。

Sample Input 999 10 Sample Output 76110 思路

先判断一个数是否为质数,然后将质数求和。

那么如何判断一个数是否为质数呢?

方法①:从 2 到 n 循环一遍,看看有没有能除尽 n 的,如果有, 那这个数不是质数,如果没有,那么这个数是质数。

方法②:从 2 到 √n 循环一遍,看看有没有能除尽 n 的,如果有, 那这个数不是质数,如果没有,那么这个数是质数。也就是方法①的进化版,这个算法可以缩短程序的运行时间,降低时间复杂度。

方法③:线性筛。思想是:从 2 开始,因为 2 的倍数一定不是素数,所以先把2的倍数全部删去;接着找下一个素数3,把3的倍数全部删去;因为4是2的倍数,已经被删去,所以直接找下一个素数5,把5的倍数全部删去;接着7的倍数,11的倍数,…直到把某个范围内的合数全部筛选出去,剩下的即为素数。

方法④:六倍原理。可以从数学上证明,大于6的质数都是在6 的倍数的左右两边。

C语言代码:

#include #include int isprime(int x) { if(x > y) { if(x == 0 && y == 0) break; int flag = 0; for(int i = x; i


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3