验证“哥德巴赫猜想”/水仙花数/给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形



循环-04. 验证“哥德巴赫猜想”(20)


数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。


输入格式:


输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。


输出格式:


在一行中按照格式“N = p + q”输出N的素数分解,其中p <= q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。


输入样例:


24


输出样例:


24 = 5 + 19


	#include 
	#include




	long long isPrime(long long n){
	long long i,sign=1;
	for(i=2;i<=sqrt(n);i++){
	if(n%i==0){
    sign=0;
	}
	}


	return sign;
	}


	int main(void) {
	long long N,p=2,q=2;
	scanf("%lld",&N);
	
		for(;p<=(N-p);p++){
	
		if(isPrime(p)&&isPrime((N-p))){
		
			printf("%lld = %lld + %lld",N,p,N-p);
			break;
		}
			
					}
	return 0;
	}






【描述】


水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例 如:153 = 13 + 53 + 33。 本题要求编写程序,计算所有N位水仙花数。


【输入】


输入在一行中给出一个正整数N(3<=N<=7)。


【输出】


按递增顺序输出所有N位水仙花数,每个数字占一行。


【输入示例】


3


【输出示例】


153


370


371


407

	#include


	int powI(int n,int N){
	int sum;
	for(sum=1;N>=1;N--){
		sum=sum*n;
	}
	return sum; //忘记return sum了!
	}


	int main(){
	int N,sum,i,n,SUM=0,a,b;
	scanf("%d",&N);
	// n=pow(10,N-1);不要用pow,在PAT里测试,速度相当慢,还通不过测试。自己写循环来算。 
	b=N;
	for(a=1;b>1;b--){
		a*=10;
	}
	
	sum=a;
	n=a;
	while(n





【描述】


给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。


【输入】


输入在一行中顺序给出6个[-100, 100]范围内的数字,即3个点的坐标x1, y1, x2, y2, x3, y3。


【输出】


若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。


【输入示例1】


4 5 6 9 7 8


【输出示例1】


L = 10.13, A = 3.00


【输入示例2】


4 6 8 12 12 18


【输出示例】


Impossible





	#include
	#include
	int main(){
	double x1,y1,x2,y2,x3,y3,l1,l2,l3,p;
	scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
	 if((x1-x2)/(y1-y2)!=(x2-x3)/(y2-y3)){
	 	l1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)),l2=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)),l3=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
	 	p=(l1+l2+l3)/2;
	 	printf("L = %.2f, A = %.2f",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))+//,后面有空格 
		 						sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3))+
								 sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)),
								 sqrt(p*(p-l1)*(p-l2)*(p-l3))//海伦公式 
								 );
	 }
	 
	 else
	 printf("Impossible");
	


	return 0;
	}









你可能感兴趣的:(C习题集,c)