从键盘输入一整数n,计算从1到n中的素数个数共有多少

代码如下:

//终曲cc-学习之路
#include <stdio.h>
#include <math.h>

int main()
{
	long long int t,j,u=0;
	int isprime(int n);
	printf("请输入一个数:");
	scanf("%d",&t);
	for(j=1;j<=t;j++)
	{
		if (isprime(j)==1) u++;
	}
	printf("从1到%d总共有%d个素数。",t,u);
	return 0;
}

int isprime(int n)
{
	int i;
	if(n==2) return 1;
	else if(n==1||n%2==0) return 0;
	for (i=3;i<=sqrt(n)+1;i+=2)
	{
		if(n%i==0) return 0;
	}
	return 1;
}

作者采用的方法是首先将1,2,以及除2以外的所有偶数拿出来,1和除2的所有偶数都不为素数,则return 0;2为素数,则return 1。

接下来判断从3开始的所有奇数是否为素数,采用n与从3开始一直比较到根号n的商是否为0的方式。若为非素数,则return 0;若为素数,则return 1。

在main函数中用变量u作为计数器,统计一共有几个素数,最后输出结果。

下为程序运行结果图:

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值