c语言实现素数

打印100-200之间的素数。

#include<stdio.h>
#include<stdlib.h>
void is_sushu()
{
	int i=0;
	int j=0;
	for(i=101; i<200; i+=2)
	{
		for(j=3; j<i/2; j++)
		{
			if((i%j)==0)
				break;
		}
		if(j==i/2)
			printf("%d ",i);
	}
}
int main()
{
	is_sushu();
	system("pause");
	return 0;
}
时间: 2024-10-12 19:42:19

c语言实现素数的相关文章

一起talk C栗子吧(第八回:C语言实例--素数)

各位看官们,大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转. 让我们一起talk C栗子吧! 看官们.上一回中咱们说的是进制转换的样例,这一回咱们说的样例是:素数. 素数又叫质数,在大于1的自然数中.假设一个正整数除了1和它本身外.不能被其他自然数整除.那么这 个数就是一个素数.素数比較多.所以咱们样例中仅仅展示从1到100这个范围内的素数. 看官们认为这个样例算是简单.我也认为比較简单.仅仅要把范围内的数从头到尾遍历一下,推断能否被 除1和自身

c语言求素数

大于1的自然数不是素数就是合数,只要能被素数整除就不是素数,据此逐个打印素数,可不调用库函数sqrt. #include<stdio.h> int main(void) { int i, j; int prime[50] = { 2, 3, 5, 7, 11, 13, 17, 19}; int k = 8; for(i = 20; i < 201; ++i) { for(j = 0; j < k; ++j) { if( i % prime[j] == 0) break; } if(

用C语言实现素数筛法获取一亿(100000000)以内的全部素数

具体筛法是:先把n个自然数按次序排列起来.1不是质数,也不是合数,要划去.第二个数2是质数留下来,而把2后面所有能被2整除的数都划去.2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去.3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去.这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数.因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫

南阳oj 语言入门 素数 题目169 素数距离 题目24

 素数  题目169 #include<stdio.h> #include<math.h> int main(){ int prime(int a); int i,j,n,rd,ld,p; scanf("%d",&n); while(n--){ int num,lnum,rnum; scanf("%d",&num); if(num==1){ printf("2\n"); continue; } p=pr

C语言判断素数(break语句)(continue语句)

一.判断素数 试题:从键盘上输入一个正整数n,判断是否为素数. 分析:素数就是只能被1和自身整除的数,判断素数的算法是,用i=1,2,3.......,n-1去除n,如果i能整除n,说明n不是素数,停止检验,否则继续检验i++,如果用2~n-1个数都不能整除n,则输出n是素数. 程序一 #include<stdio.h> int main() { int i; int n; scanf("%d",&n); for(i=2;i<=n-1;i++) { if(n%

c语言求素数以及改进算法

代码需要使用c99编译 #include <stdio.h> #include <stdlib.h> #include <math.h> //是否为素数 //从2到x-1测试是否可以整除 //时间复杂度O(n-2),n趋向正无穷 int isPrime(int x) { int ret = 1; for(int i = 2; i < x; i++) { if(x % i == 0) { ret = 0; break; } } return ret; } //除了2

C语言打印100到200之间的素数

用C语言打印素数,我们首先要了素数的相关定义:只有1和它本身两个因数的自然数,也就是说除了1和它本身外,不能被其他自然数整除的数就称为素数. 例如:101只能被1 和101 整除:103只能被1 和103 整除,所以他两都是素数 思路: 要判断一个数是否为素数可以验证从2开始到它本身的数里是否有可以被他取余数为0 的数字,如果有则证明它不是素数.反之则输出素数. 1 # include<stdio.h> 2 int main() 3 { 4 int i = 0; 5 int count = 0

C语言最优化求素数

初学C语言,看到求素数的代码,不是太满意,自己设计了一个计算流程图.在贴吧里也问了一下,和"埃拉托色尼(Eratosthenes)筛法”有些撞车,当然在下不敢与数学巨匠们争长短,不过还是想自己试一下. 百度了一下有人已经用这类方法做了代码,不过和我的想法有出入. 思路: 1要避免冗余的求余计算的计算次数,这样在数字足够大的时候更能体现更高的计算效率, 1)分母排除偶数,可以减少一半的计算量.具体做法是改+1递增为从第二个素数3开始+2递增; 2)筛选求余计算的分子,而根据素数的定义,只要不被小于

C语言打印100 ——200之间的素数

根据素数定义,只能被1和它本身整除的自然数为素数.利用定义可以循环判断该数除以比它小的每一个自然数(不包括1),如果都不能整除,则这个数就是素数. 由于上述方法效率太低,对此方法进行优化.我们都知道偶数一定不是素数,那只求剩余一般的数.如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根,由合数定理可进一步优化,只需要循环判断该数除以比它的平方根小的每一个自然数(大于1)即可. C语言代码如下: #include<stdio.h> #include<math.h> int m