循环与素数

循环判断一个数字是否为素数

#include<stdio.h>
//循环判断素数 
int main()
{
	int number = 0;
	int isPrime = 1;
	scanf("%d",&number);
	if (number==1)
		isPrime = 0;
	else
	{ 
		for (int i = 2; i<number;i++)
		{
			if(number % i == 0)
			{	isPrime = 0;
				break;
			}
		}
	} 
	if(isPrime==1)
		printf("Yes"); 
	else
		printf("No");
	return 0; 
}

number为你要判断的数字,如果number 为 1 则不是素数, number不为1 则进行循环判断
循环三要素:
循环变量的初始值 int i = 2
循环条件 i < number
循环变量增量 i ++

其中break 用于减少不必要的循环次数

输出n以内的素数

#include<stdio.h>
/*
输出前n以内的素数 
*/
int isPrime(int number);
int main()
{
	int num;
	scanf("%d",&num);
	
	for (int i =2;i<num;i++){
		if(isPrime(i)==1){
			printf("%d ",i);
		}	
	}
	return 0;
}
int isPrime(int number)
{
	//int number;
	int isPrime = 1;
	//scanf("%d",&number);
	if (number == 1){
		isPrime == 0;
	}
	for (int i=2;i<number;i++){
		if (number % i==0){
			isPrime = 0;
			break;
		}
	}
	if(isPrime==1){
		//printf("Yes");
		return 1; 
	}
	else{
		//printf("No");
		return 0;
	}
}

获得第n个素数

#include<stdio.h>
/*
获得第n个素数 
*/
int isPrime(int number);
int NisPrime(int end);
int main()
{
	int number;
	scanf("%d",&number);
	NisPrime(number); 
	return 0;
}
int NisPrime(int end)
{
	int cnt = 0;
	int number = 2;
	int primeNumber = 2;
	while(cnt < end){
		if(isPrime(number)){
			cnt ++;
			primeNumber = number;
		}
		number ++;	
	}
	printf("%d",primeNumber);
	return primeNumber; 
} 
int isPrime(int number)
{
	//int number;
	int isPrime = 1;
	//scanf("%d",&number);
	if (number == 1){
		isPrime == 0;
	}
	for (int i=2;i<number;i++){
		if (number % i==0){
			isPrime = 0;
			break;
		}
	}
	if(isPrime==1){
		//printf("Yes");
		return 1; 
	}
	else{
		//printf("No");
		return 0;
	}
}

获得前n个素数的和(包括第个n素数)

#include<stdio.h>
/*
获得第n个素数的合 
*/
int isPrime(int number);
int NisPrime(int end);
int sumPrime(int end);
int main()
{
	int number;
	scanf("%d",&number);
	printf("%d",sumPrime(number));
	 
	return 0;
}

int sumPrime(int end)
{
	/*
	计算前n个素数和 
	*/ 
	int sum = 0;
	int count = 0;
	int number = 2;
	while(count<end){
		if(isPrime(number)){
			sum += number;
			count ++;
		}
		number ++;
	} 
	return sum; 
} 
int NisPrime(int end)
{
	/*
	输出第n个素数 
	*/
	int cnt = 0;
	int number = 2;
	int primeNumber = 2;
	while(cnt < end){
		if(isPrime(number)){
			cnt ++;
			primeNumber = number;
		}
		number ++;	
	}
	printf("%d",primeNumber);
	return primeNumber; 
} 
int isPrime(int number)
{
	/*
	判断一个数字是否为素数; 
	*/ 
	//int number;
	int isPrime = 1;
	//scanf("%d",&number);
	if (number == 1){
		isPrime == 0;
	}
	for (int i=2;i<number;i++){
		if (number % i==0){
			isPrime = 0;
			break;
		}
	}
	if(isPrime==1){
		//printf("Yes");
		return 1; 
	}
	else{
		//printf("No");
		return 0;
	}
}

获得第m个到第n个素数的和(包括m和n)

#include<stdio.h>
//输出前n个素数 2 3 5 7 11
int main()
{
	int count = 0;
	int number = 2;
	int end1,end2;
	int sum = 0, sum2 = 0;	
	//for(int number=2; number<start;number++)
	scanf("%d %d",&end1, &end2);	
	while(count<end1-1){
		int isPrime = 1;
		
		for(int i=2; i<number ;i++)
		{
			if(number%i==0){
				isPrime = 0;
				break;
			}
		}
		
		if(isPrime == 1){
			//printf("%d ", number);
			count ++;
			sum += number;
		}
		number++;
	}

	
	int count2 = 0;
	int number2 = 2;
	while(count2 < end2){
		int isPrime = 1;
		for(int i=2;i<number2;i++){
			for(int j=2;j<number2;j++){
				if(number2 % j ==0 ){
					isPrime = 0;
					break; 
				}
			}
		}
		if(isPrime == 1){
			//printf("%d ", number);
			count2 ++;
			sum2 += number2;
		}
		number2 ++;
	} 
	printf("%d",sum2-sum);
	return 0; 
}

整数分解123456 逆序输出

#include<stdio.h>
//整数分解 
int main()
{
	int number;
	int remainder = 0;
	scanf("%d",&number);
	while(number>0){
		remainder = number % 
		10;
		number /= 10;
		printf("%d ",remainder);			
	}
	
	return 0; 
}

将数字逆序输出

这种逆序只适用末尾没有0的数字 700 则反转为7 而不是007

/*这种逆序只适用末尾没有0的数字 700 则反转为7 而不是007
123
d = 3	t=0+3	x=12
d = 2	t=3*10+2 x=1
d = 1	t= 32*10+1 x=0
*/
int reverse(int number)
{
	int remainder,reverseNumber = 0;
	while(number>0){
		remainder = number % 10;
		reverseNumber = reverseNumber * 10 + remainder;
		number /= 10;
	}
	return reverseNumber;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘璐菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值