C语言_练习(四)

C语言_练习(四)

31、质数判断
读入一个数N,判断这个数是不是质数(prime number)。
质数:一个数 N 除了1和它本身不存在其他约数,这样的数叫做质数。
约数:整数a除以整数b(b≠0) 除得的商正好是整数而没有余数。则a称为b的倍数,b称为a的约数。

#include <stdio.h>
int main() {

	int n,i;
    scanf("%d",&n);
	for(i=2;i<n;i++){
		if(n%i==0)
			break;
	}
		if(i<n)
			printf("no\n");
		else
			printf("yes\n");
	

	return 0;
}

32、倍数个数
读入N,求出1…N的范围内所有2或3或5的倍数一共有多少个?

#include <stdio.h>
int main() {

	int n,i,m=0;
    scanf("%d",&n);
	for(i=1;i<=n;i++){
		if(i%2==0||i%3==0||i%5==0)
			++m;
	}
	printf("%d\n",m);
	return 0;
}

33、数字反写
读入一个四位数abcd,请你输出他的“反写”的值。
比如读入1015,输出5101;
读入4310,输出134(不能有前导零)
不合法的四位数,如234, 0123, 12412不会作为读入数据。

#include <stdio.h>
int main() {

	int n,m;
	int i=0;
	int sum=0;
	scanf("%d",&m);
	n=m;
	while(m!=0){
		i=m%10;
		m=m/10;
		sum = sum*10+i;
	}

	printf("%d\n",sum);
	return 0;
}

34、分数求和2
1, - 1/2 , 1/3, - 1/4 , 1/5 ,- 1/6 , …

求这个数列前n个数的和

#include<stdio.h>
int main()
{
	int i,n;
	float sum=0,x,y=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		if(i%2!=0){
			x=1;
			y+=1;
			sum+=x/y;
		}else{
			x=-1;
			y+=1;
			sum+=x/y;
		}
		
	}
	
	printf("%f\n",sum);
}

35、分数求和3 (注意精确到小数点后10位)
n!=1 * 2 * 3 * … * n
现在请你求1/1!+1/2!+…+1/n! 的值

#include<stdio.h>
int main()
{
	int n,i;
	float sum=0,m=1;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		m=m*i;
		sum+=1/m;
	}
	printf("%.10f\n",sum);
	return 0;
}

36、9的个数

给个一个正整数n,请你求出1到n之间所有整数中出现了多少个9

#include<stdio.h>
int main()
{
	int n,m=0,i;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		if(i%10==9)
			++m;
		if(i/10==9)
			++m;
	}
	printf("%d\n",m);
	return 0;
}

37、 最大的质数
读入一个数n,求比n小的最大的质数是谁。
一个数是质数,当且仅当除了1和它本身以外,没有其他的数能整除它。

#include <stdio.h>
int main() {

	int n,i,j,max=0;
    scanf("%d",&n);
	for(j=2;j<n;j++){
	
		for(i=2;i<j;i++){
			if(j%i==0)
				break;
	}
			if(i<j)
			//printf("no\n");
				continue;
			else
			//printf("yes\n");
				if(j>max)
					max=j;
	}
	printf("%d\n",max);
	return 0;
}

38、回文数
数字回文的判定,如果一个数字从左往右看和从右往左看是一样的,那么我们称
这个数字是回文数字,例如121,454454, 67876,5,22都是回文数字,而223,
56,10就不是回文数字。现在读入一个数字X,请你写程序判断一下它是不是回文数
字。

#include<stdio.h>
int main()
{
	int x,sum=0,n,i=0;
	scanf("%d",&x);
	n=x;
	while(n!=0){
	//	a = a*10 + m%10;
		i=n%10;
		n=n/10;
		sum = sum*10+i;
	}
	if(x==sum)
		printf("yes\n");
	else
		printf("no\n");
	return 0;
}

39、正数的和
先给定n,再给定n个整数,请计算出里面所有正数的和。

#include<stdio.h>
int main()
{
	int n,i,m,sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d",&m);
		if(m>0)
			sum+=m;
	}
	printf("%d\n",sum);
	return 0;
}

未完待续

发布了55 篇原创文章 · 获赞 14 · 访问量 3375

猜你喜欢

转载自blog.csdn.net/weixin_41969690/article/details/103295314