C语言:输出0-100间素数 & 连续输出100个素数

0-100间素数

  1. 算法思路:
    1、参考判断素数程序
    2、加入循环实现0-100间素数输出

  2. 代码如下:

//输出0-100内素数 
#include<stdio.h>
int main()
	
{	
	int a;
	int i;
	int count=0; 
	int isprime=1;  //a是素数 
	for(a=2;a<100;a++){
		for(i=2;i<a;i++){
			if(a%i==0){
			 	isprime=0;
				break;			
			}					
		} 
		if(isprime==1){
			count++;
		   	printf("%d\t ",a);  //水平制表符
			   	if(count%5==0){
			   		printf("\n");	//换行符	   		
				   }
		}
	    			
	   	isprime=1;
	}	
	return 0;
}

输出结果:
		2        3       5       7       11
		13       17      19      23      29
		31       37      41      43      47
		53       59      61      67      71
		73       79      83      89      97
		
		--------------------------------
		Process exited after 0.3817 seconds with return value 0
		请按任意键继续. . .

代码分析:
根据上一个程序改编而成,主要加了0-100内数值循环这个选项,这里一定要注意 if 、while 、for 等循环语句中有{ }和没有的区别,尤其是在改动语句的时候一定要注意。

连续输出100个素数

  1. 算法思想:
    1、设置计数器用于检验是否达到100个素数;
    2、利用 for 和 while 循环均可以达到效果;

  2. 代码如下:

// 输出50个连续素数 
#include<stdio.h>
int main()
	
{	
	int a=2;
	int i;
	int count=0; 
	int isprime=1;  //a是素数 
	for(a=1;count<100;a++)
	//while(count<100)
	{
		for(i=2;i<a;i++){
			if(a%i==0){
			 	isprime=0;
				break;			
			}					
		} 
		if(isprime==1){
			count++;
		   	printf("%d\t ",a);
			   	if(count%5==0){
			   		printf("\n");		   		
				   }
		}	    	
	   	isprime=1;
	   	// a++;
	}	
	return 0;	
}

输出:
1        2       3       5       7       11      13      17      19      23
29       31      37      41      43      47      53      59      61      67
71       73      79      83      89      97      101     103     107     109
113      127     131     137     139     149     151     157     163     167
173      179     181     191     193     197     199     211     223     227
229      233     239     241     251     257     263     269     271     277
281      283     293     307     311     313     317     331     337     347
349      353     359     367     373     379     383     389     397     401
409      419     421     431     433     439     443     449     457     461
463      467     479     487     491     499     503     509     521     523

--------------------------------
Process exited after 0.2975 seconds with return value 0
请按任意键继续. . .

代码分析:
这里说一下程序第26行中 isprime=1;对isprime初始化意义:当不是素数时,经过第15行的 isprime=0 会使isprime的值变为 0 ,由于 isprime 的声明语句在整个循环外部,所以即使下一个为素数,也会因为 isprime 的值而导致错误输出。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值