可达鸭【2023暑期编码之星打卡活动】CSP-X
求完数
完数:如果一个数等于不含它本身的其他因子之和,则称该数为‘完数’。如6的因子有1,2,3,6,且1+2+3= 6,因此6是完数。
题目描述:
输入一个正整数N(0 < N < 10000),输出小于N的所有完数及小于N的完数个数,个数前加 ‘*’ 。
输入:
输入一个正整数N(0 < N < 10000)
输出:
输出小于N的所有完数及小于N的完数个数。
样例:
//input
100
//output
6
28
*2
解题思路:
因为题目中规定NNN小于10000,可以打出一个极其简单,人尽皆知的完全数表:6,28,496,81286,28,496,81286,28,496,8128。
然后就可以计数输出了。
AC代码
#include<bits/stdc++.h>
using namespace std;
int a[4]={
6,28,496,8128};
int sum=0;
int main()
{
int N;
cin>>N;
for(int i=0;i<=3;i++)
{
if(a[i]<N)
{
cout<<a[i]<<endl;
sum++;
}
}
cout<<'*'<<sum<<endl;
return 0;
}
字符串操作
题目描述:
有一个字符串,需要你完成以下几个操作:
1.删除所有元音字母
2.每个非元音字母前面加一个点
3.所有非元音大写字母转成小写字母
元音字母包含:A E I O U Y。
输入描述:
输入为只包含字母的字符串。字符串长度不超过100000。
输出描述:
输出经过处理后的字符串。
样例:
//input
aououR
//output
.r
//input
yeiouAEIOU
//output
//这组输出不包含任何字符
解题思路:
先将字符串输入,然后找既不是大写元音字母也不是小写元音字母(即大小写辅音字母),然后如果当前字符是大写就用+32+32+32的方法转成小写。
进行printf()printf()printf()输出,在每个字符前加一个点。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[100005];
int i=0;
scanf("%s",a);
while(a[i])
{
if(!(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='Y'||a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='y'))
{
if(a[i]<='Z'&&a[i]>='A')
{
printf(".%c",a[i]+32);
}
else printf(".%c",a[i]);
}
i++;
}
return 0;
}
求素数(个位数为7)
题目描述
给出一个正整数N,计算出7到N之间个位数为7的素数有多少个。
例如:7到20之间的素数有7、11、13、17、19,其中个位为7的有2个,分别为7和17。
输入描述
输入一个正整数N(10<N<9999)N(10 < N < 9999)N(10<N<9999)。
输出描述
输出7到NNN(包含7和