您的位置:首页 > 其它

经典c程序(0008)--判断101-200之间有多少个素数,并输出所有素数

2014-03-16 13:42 477 查看
/**********************************************************************************************************  
* Function        : test  
* Create Date     : 2014/03/16  
* Author          : NTSK13  
* Email           : beijiwei@qq.com  
* Copyright       : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。  
                             任何单位和个人不经本人允许不得用于商业用途  
                             转载请注明 转自 http://blog.csdn.net/beijiwei  
* Version          : V0.1    
* date             : 2014/03/16    
* history          : V0.1     
***********************************************************************************************************  
   
经典c程序(0008)   
  
题目:判断101-200之间有多少个素数,并输出所有素数。
素数就是不能被除它自身和1以外的数整除的数
 
 
**********************************************************************************************************/    
#include<stdio.h>   
   
#define MY_FUNC  0
 
#if MY_FUNC    

int is_aliquot(int m,int n);//判断m是否能被n 整除
int main()  
{  
    int i=0,j=0,k=0; 
	for(i=103;i<200;i=i+2)
	for(j=2;j<i;j++)
	{
		if(is_aliquot(i,j))
			break;
		if(j==i-1)
		{
			printf("This is a prime number: %d\n",i);
			k++;
		}
	}
	printf("The total of prime number is : %d\n",k);
	return 0;  
}  

int is_aliquot(int m,int n)
{
	if(m%n==0)// 第一个月
		return 1;
	else
		return 0;
}

// refer answer    
#else    
/*题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
      则表明此数不是素数,反之是素数。       
*/
#include "math.h"
void main()
{
    int m=0,i=0,k=0,h=0,leap=0;
	printf("\n");
	for(m=101;m<=200;m++)
	{
		k=sqrt(m+1);
		for(i=2;i<=k;i++)
		if(m%i==0)
			{leap=0;break;}
		if(leap) 
		{
			printf("%-4d",m);h++;
			if(h%10==0)
				printf("\n");
		}
		leap=1;
	}
	printf("\nThe total is %d\n",h);
}

#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐