3565 - 3.cpp

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

100(不包括100)到n之间的所有素数(包括n)正负相间的和,nn为整型数据)通过键盘输入,如当n=200,101-103+107-109+199.要求通过int  prime(int num)判断素数。

题目输入

输入1个整型数据(多组输入数据)

题目输出

输出计算的值(多组输出数据)

输入/输出样例

输入格式

200
300

输出格式

135
187

C语言解答

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
int prime(int num)
{
	int j;

	for(j=2;j<=sqrt(num);j++)
	{
		if((num%j)==0)
			break;
	}
	if(j<=sqrt(num))
		return 1;//不是素数
	else return -1;//是素数
}

int main()
{
   // freopen("in","r",stdin);
   // freopen("out","w",stdout);
    int n;
	int i;
	while(scanf("%d",&n)!=EOF)
	{
		int flag=1;
		int sum=0;
		for(i=101;i<=n;i++)
		{
			if(prime(i)==-1)
			{
				sum += (i*flag);
				flag *= -1;
			}
		}
		printf("%d\n",sum);
	}


  return 0;
}

C++解答

#include<stdio.h>
#include<math.h>
int prime(int num)
{
	int s,i,j,m;
	for(s=0,i=101;i<=num;i++)
		for(m=0,j=2;j<=sqrt(i);j++)
		{
			if(i%j!=0)
			{
				m++;
			}
			else
				break;
		}
		if(m+2>sqrt(i))
			return num;
		else
			return 0;
}
main()
{
	int s,n,i,k;
	while(scanf("%d",&n)!=EOF)
	{
		for(s=0,k=1,i=101;i<=n;i++)
		{
			if(prime(i))
			{
				s+=k*i;
				k=-k;
			}
		}
		printf("%d\n",s);
	}
	return 0;
}