多项式求和,素数判定 HDU2011.2012

HDU 2011:多项式求和

Description

多项式的描述如下: 
1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 
现在请你求出该多项式的前n项的和。
 

Input

输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。
 

Output

对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。
 

Sample Input

2 1 2
 

Sample Output

1.00 0.50
 
_________________________________________________________________________________________________________________________________________
Code:
 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {int a,b;
 5 float k,SUM;
 6 
 7 scanf("%d",&a);
 8 for(int i=1;i<=a;i++)
 9 {
10 SUM=0.0;
11 scanf("%d",&b);    
12 for(int i=1;i<=b;i++)
13 {
14 k=pow((-1.0),(i+1))*(1.0/i);
15 SUM+=k;
16 
17 }
18 printf("%.2f\n",SUM);
19 } 
20 return 0;
21 }

 

 

 

HDU2012:素数判定

 

Description

对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
 

 

Input

输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
 

 

Output

对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。 
 

 

Sample Input

0 1 0 0
 

 

Sample Output

OK

 

_________________________________________________________________________________________________________________

Code:

 1 #include<stdio.h> 
 2 int sushu(int n) 
 3 { 
 4 int i; 
 5 if(n<2) 
 6 return 0; 
 7 for(i=2;i*i<=n;i++) 
 8 { 
 9 if(n%i==0) 
10 return 0; 
11 else ; 
12 } 
13 return 1; //素数函数,return 1一定要放在循环体外。 
14 
15 } 
16 int main() 
17 { 
18 int x, y, i, s; 
19 while(scanf("%d%d",&x,&y)) 
20 { 
21 if(x==0&&y==0) 
22 break; 
23 for(i=x;i<=y;i++) 
24 { 
25 s=i*i+i+41; 
26 if(!sushu(s)) 
27 { 
28 printf("Sorry\n"); 
29 break; 
30 } 
31 
32 } 
33 if(i==y+1) 
34 printf("OK\n"); 
35 } 
36 return 0; 
37 }

 

 

posted @ 2017-11-05 23:15  Rohlf  阅读(473)  评论(0编辑  收藏  举报