打印100-200之间的素数

#include <stdio.h>

int prime(int n){
	int i = 1;
	for(i = 2;i < n;i++)
	{
		if(n % i == 0)
			return 0;
	}
	return 1;
}
//打印100-200之间的素数
int main()
{
	int n = 0;
	int j = 100;
	for(j = 100;j <= 200;j++)
	{
		if(prime(j))
		{
			printf("%d是素数\n",j);
			n++;
		}
	}
	printf("100-200之间素数有%d个\n",n);
	/*scanf("%d",&n);
	if(prime(n))
		printf("%d是素数\n",n);
	else
		printf("%d不是素数\n",n);*/
	return 0;
}

        还可以改进,如果n = m * m,a * b = n,那么a,b中必定有一个数 <= m。

        sqrt是数学库函数,开平方,使用时需包含头文件math.h。

#include <stdio.h>
#include <math.h>

int prime(int n){
	int i = 1;
	for(i = 2;i <= sqrt((double)n);i++)
	{
		if(n % i == 0)
			return 0;
	}
	return 1;
}
//打印100-200之间的素数
int main()
{
	int n = 0;
	int j = 100;
	for(j = 100;j <= 200;j++)
	{
		if(prime(j))
		{
			printf("%d是素数\n",j);
			n++;
		}
	}
	printf("100-200之间素数有%d个\n",n);
	system("pause");
	return 0;
}

        这样也可以得出正确的结果:

        偶数一定能被2整除,不是素数。可以再改进一下,从101开始,每次递增2

#include <stdio.h>
#include <math.h>

int prime(int n){
	int i = 1;
	for(i = 2;i <= sqrt((double)n);i++)
	{
		if(n % i == 0)
			return 0;
	}
	return 1;
}
//打印100-200之间的素数
int main()
{
	int n = 0;
	int j = 100;
	for(j = 101;j <= 200;j = j + 2)
	{
		if(prime(j))
		{
			printf("%d是素数\n",j);
			n++;
		}
	}
	printf("100-200之间素数有%d个\n",n);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值