亲和数
属于函数的内容
题目
-
问题描述
古希腊数学家毕达哥拉斯在自然数研究中发现,
220的所有真约数(即不是自身的约数)之和为:
1+2+4+5+10+11+20+22+44+55+110=284。
而284的所有真约数为1、2、4、71、 142,加起来恰好为220。
人们对这样的数感到很惊奇,并称之为亲和数。
一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。
你的任务就编写一个程序,判断给定的两个数是否是亲和数。
请定义一个函数,传入一个数n,返回n的所有真约数之和。 -
输入说明
输入数据第一行包含一个数M,接下来有M行,每行一个实例,包含两个整数A,B; 其中 0 <= A,B <= 600000 -
输出说明
对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。 -
输入范例
2
31604 28115
284 220 -
输出范例
NO
YES
解题思路
- 解答这题的思路主要在于怎么计算约数之和,于是先写出一个函数yueshu(),其中有一个for循环i从1到n-1,其中如果x%i==0,则说明i是约数之一,把i加入sum中即可,代码如下:
cpp
int yueshu(int x){
int sum=0;
for(int i=1;i<x;i++){
if(x%i==0){
sum+=i;
}
}
return sum;
}
整体代码
cpp
#include<bits/stdc++.h>
using namespace std;
int yueshu(int x){
int sum=0;
for(int i=1;i<x;i++){
if(x%i==0){
sum+=i;
}
}
return sum;
}
int main(){
int M;
cin>>M;
for(int i=0;i<M;i++){
int A,B;
cin>>A>>B;
if(yueshu(A)==B&&yueshu(B)==A){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}
注意事项
- 注意"=="和"="之分,不要忘记。
分拆素数和
属于函数的内容
题目
-
问题描述
把一个偶数拆成两个不同素数的和,有几种拆法呢?
说明:
比如10,可以拆成3+7和5+5以及7+3,
但是3+7与7+3相同,只算一种,5+5由于两个素数相同,不计算在内。
因此,10的拆法只有一种。 -
输入说明
首先输入一个T(不超过500),然后输入T个正的偶数,其值不会超过10000。 -
输出说明
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。 -
输入范例
4
4
6
8
10 -
输出范例
0
0
1
1
解题思路
- 本题思路是先写一个素数判断函数,然后在主函数中对于每一个数x,用for循环j从2到x/2即可,每次都判断j和x-j是不是素数还有j和x-j是否相等即可,如果是的话,计数加一,循环结束后就可以得到准确的计数了。
整体代码
cpp
#include<bits/stdc++.h>
using namespace std;
bool issushu(int x){
bool sushu=true;
if(x==0||x==1){
sushu=false;
}
for(int i=2;i*i<=x;i++){
if(x%i==0){
sushu=false;
break;
}
}
return sushu;
}
int main(){
int T;
cin>>T;
for(int i=0;i<T;i++){
int x;
cin>>x;
int count=0;
for(int j=2;j<=x/2;j++){
if(issushu(j)&&x-j!=j&&issushu(x-j)){
count++;
}
}
cout<<count<<endl;
}
return 0;
}
注意事项
- 注意函数定义的名称和类型。
歌德巴赫猜想
属于函数的内容
题目
-
问题描述
因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 号是回文质数。写一个程序来找出范围[a,b](5<= a < b <= 100,000)间的所有回文质数。 -
输入说明
仅 1 行: 二个整数 a 和 b(5<= a < b <= 100,000)。 -
输出说明
输出一个回文质数的列表,一行一个。
每行首尾无空格,最后无空行。 -
输入范例
300 500
-
输出范例
313
353
373
383
解题思路
- 本题首先编写一个素数判断函数,然后在主函数中对于每一个偶数x写一个for循环j从2到x/2,判断j和x-j是否都为素数,如果是的话输出并退出循环即可。
整体代码
cpp
#include<bits/stdc++.h>
using namespace std;
bool issushu(int x){
bool sushu=true;
if(x==0||x==1){
sushu=false;
}
for(int i=2;i*i<=x;i++){
if(x%i==0){
sushu=false;
break;
}
}
return sushu;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int x;
cin>>x;
for(int j=2;j<=x/2;j++){
int r=x-j;
if(issushu(j)&&issushu(r)){
cout<<j<<" "<<r<<endl;
break;
}
}
}
return 0;
}
注意事项
- 注意输出格式。
英文段落翻译
自己翻译
射频识别是用电子标签或射频识别标签在任意被监控或被追踪的物体上应用的。这些标签可以被应用在任何对象上,例如,商品,工具,智能手机,电脑,动物或者人类。目的是使用,射频波或感知信号来识别和追踪对象。一些标签能通过一个无线的阅读器从数10米或数百米以外被阅读到。大多数射频识别标签包括至少两个主要部分。一部分是一个主要用于存储和加工信息,调制和解调一个射频信号和一些其他功能的集成电路板。另一部分是一个接收和传送射频信号的天线。
今天的传感器网络大部分是无线的,就是我们所熟知的无线传感器网络WSN。一个典型的无线传感器网络包括空间上贡献的自主的传感器来协作的获取物理或者环境的条件,例如温度,声音,振动,压力,移动,或者污染性物质。无线传感器网络的发展是被军事应用,例如战场监控所推动的。无线传感器网络技术现在被用于许多工业和市民应用领域,包括流程监控和控制,机器健康监控,环境和自然栖息地监控,健康关爱和家庭智能化,以及智能交通控制。
GPS是被美国空军在1973年发明的。相同的发明也在欧洲,罗马和中国出现了。自从1994年,一个低级的GPS已经可以,为市民应用在提供可靠的位置导航和时间服务做出可行性。对于任何一个有GPS接收器的人来说,这个系统将会为世界上的无数的用户在任何天气情况下,不管在任何时间,任何地点提供准确的位置和时间信息。
AI翻译
RFID通过在被监控或追踪的物体上附加电子标签(即RFID标签)来实现应用。这些标签可以附着于任何物体,例如商品、工具、智能手机、计算机、动物或人员,其目的是利用无线电波或传感信号来识别与追踪目标物体。部分标签可通过无线阅读器在数十甚至数百米外读取。大多数RFID标签至少包含两个主要部分:一是用于存储和处理信息、调制解调射频信号及执行其他特殊功能的集成电路;二是用于接收和发送无线电信号的天线。
当今的传感器网络多为无线网络,即无线传感器网络。一个典型的WSN由在空间上分布式部署的自主传感器组成,这些传感器协同监测物理或环境状况,如温度、声音、振动、压力、运动或污染物。无线传感器网络的发展最初受军事应用(如战场监视)的推动。如今,WSN技术已应用于众多工业和民用领域,包括过程监控与控制、机器健康监测、环境与栖息地监测、医疗保健与家庭自动化,以及智能交通控制。
GPS 由美国空军于1973年开发。欧盟、俄罗斯和中国也开展了类似的系统建设。自1994年起,一项精度降级的GPS服务已向民用领域开放,提供可靠的定位、导航与授时服务。对于任何拥有GPS接收器的人,该系统可在全球任何地点、任何天气条件、昼夜不间断地为无限量用户提供准确的位置与时间信息。
单词打卡

下一篇
待续