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

时间:2023-03-09 07:00:38
多项式求和,素数判定 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:
 #include<stdio.h>
#include<math.h>
int main()
{int a,b;
float k,SUM; scanf("%d",&a);
for(int i=;i<=a;i++)
{
SUM=0.0;
scanf("%d",&b);
for(int i=;i<=b;i++)
{
k=pow((-1.0),(i+))*(1.0/i);
SUM+=k; }
printf("%.2f\n",SUM);
}
return ;
}

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:

 #include<stdio.h>
int sushu(int n)
{
int i;
if(n<)
return ;
for(i=;i*i<=n;i++)
{
if(n%i==)
return ;
else ;
}
return ; //素数函数,return 1一定要放在循环体外。 }
int main()
{
int x, y, i, s;
while(scanf("%d%d",&x,&y))
{
if(x==&&y==)
break;
for(i=x;i<=y;i++)
{
s=i*i+i+;
if(!sushu(s))
{
printf("Sorry\n");
break;
} }
if(i==y+)
printf("OK\n");
}
return ;
}