22 素数求和问题

本文介绍了一种通过编程方式筛选并求和指定范围内的所有素数的方法。具体包括读取多组测试数据,每组数据包含一系列整数,程序需要找出这些整数中的素数并计算它们的总和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。

输入

第一行给出整数M(0<M<10)代表多少组测试数据

每组测试数据第一行给你N,代表该组测试数据的数量。

接下来的N个数为要测试的数据,每个数小于1000

输出

每组测试数据结果占一行,输出给出的测试数据的所有素数和

样例输入

3
5
1 2 3 4 5
8
11 12 13 14 15 16 17 18
10
21 22 23 24 25 26 27 28 29 30

样例输出

10
41
52

#include<iostream>
#include<vector>
#include<cmath>
using namespace std;

int main()
{
	vector<int> v,v1;
	int m,n,val,sum,flag;
	while (cin >> m)
	{
		while (m--&&cin >> n)
		{
			while (n--&&cin >> val)
			{
				v.push_back(val);
			}
			sum = 0;
			for (int i = 0; i <= v.size() - 1; i++)
			{
				flag = 0;
				for (int j = 2; j <= sqrt(v[i]); ++j)
				if (v[i] % j == 0)
					flag = 1;
				if (flag == 0 && v[i] != 1)
					v1.push_back(v[i]);
			}
			if (!v1.empty())//要考虑到输入可能没有素数的情况(0<N<1000),如全为1(1不是素数),这时v1是空的,而只能对确知已存在的元素执行下标操作,不然会出错。
			{
				for (int i = 0; i <= v1.size() - 1; i++)
					sum += v1[i];
				cout << sum << endl;
			}
			else cout << sum << endl;
			v.clear();
			v1.clear();
		}
	}
	return 0;
}

内容概要:本文详细介绍了水中有限长加肋圆柱壳体振动声辐射的近似解析解,并提供了完整的Python实现。文中首先阐述了问题背景,即加肋圆柱壳体作为水下航行器的主要结构形式,肋骨的作用被简化为只有法向力。接着,通过一系列关键方程(如模态振动速度方程、壳体机械阻抗、特征矩阵元素等),推导出加肋圆柱壳体的振动声辐射特性。Python代码部分实现了这些理论,包括定义`CylindricalShell`类来封装所有计算功能,如初始化参数、机械阻抗、辐射阻抗、肋骨阻抗、模态速度、辐射功率辐射效率的计算。此外,还扩展了带刚性圆柱障板的圆柱壳体类`CylindricalShellWithBaffle`,并引入了集中力激励、简支边界条件低频段计算的内容。最后,通过具体示例展示了如何创建壳体对象、设置参数、计算频率响应以及绘制结果图表,验证了加肋对辐射声功率声辐射效率的影响。 适合人群:具备一定编程基础声学基础知识的研究人员、工程师,特别是从事水下声学、船舶工程振动分析领域的专业人员。 使用场景及目标:①通过代码实现理论推导,深入理解加肋圆柱壳体的振动声辐射特性;②分析肋骨对壳体声学性能的影响,优化结构设计;③利用Python代码进行数值模拟,评估不同参数配置下的声辐射效率功率;④为实际工程项目提供理论支持技术参考。 其他说明:本文不仅提供了详细的数学推导Python代码实现,还讨论了实际应用中的注意事项,如参数调整、高频模态考虑、肋骨模型细化数值稳定性处理。建议读者结合实际需求,灵活运用文中提供的理论代码,进行更深入的研究实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值