问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:sdoj.cpp
* 作 者:李楠
* 完成日期:2015年2月5日
* 版 本 号:v1.0
*
* 问题描述:小鑫是个吃货,妈妈给他买了好多的糖果,但是小鑫想吃糖果是有条件的,小鑫要答对妈妈提的问题才能吃到相应数量的糖果。
妈妈会进行N次提问,每次给出一个数字M,要求小鑫答出1到M之间素数的个数,如果小鑫答对了,那么小鑫可以获得与素数数目相同的糖果,
要是没答对,这次提问小鑫一个糖果也拿不到。小鑫想获得所有的糖果,小鑫比较笨,所以来求助作为程序员的你,你能帮他解决么?
* 输入描述:多组输入。
第一行输入一个数N(1 <= N <= 10),表示妈妈有N次提问。
第二行输入N个数M(1 <= M <= 1000),每个M表示问题是求出1到M之间素数的个数
* 程序输出:输出只有一个数,为小鑫能最多能获得多少的糖果。
*/
#include <iostream>
using namespace std;
bool isPrimer(int n);
int reverse(int x);
int main()
{
int n;
int i,sum;
int j;
int num[10];
while(cin>>n&&n>=1&&n<=10)
{
sum=0;
for(i=0;i<n;i++)
cin>>num[i];
for(i=0;i<n;i++)
for(j=2; j<=num[i]; ++j)
{
if(isPrimer(j))
sum++;
}
cout<<sum<<endl;
}
return 0;
}
bool isPrimer(int n)
{
int l,i;
bool isprimer=true;
for(i=2;i<n;++i)
{
l=n%i;
if(l==0)
{
isprimer=false;
break;
}
}
return isprimer;
}
运行结果:
知识点总结:
哈哈 复习一下 多组输入 ^z
还有判断素数累加
学习心得:
今天在山理OJ上做题做的那叫一个心塞…
只能慢慢找安慰了~