函数——自制函数2(c++)

发布时间:2024年01月14日

#include <iostream>
#include <iomanip>
using namespace std;
float aaa(int);
int main()
{
	int n;
	cin>>n;
	float sum = 0;
	for(int i = 0;i<n;i++)
	{
		int a;
		cin>>a;
		sum = sum+aaa(a);
	}
	cout<<fixed<<setprecision(1)<<sum;
	return 0;
}
float aaa(int q)
{
	float sum2 = (int)q/70*0.1;
	if(q%70!=0) sum2 = sum2+0.1;
	return sum2;
}

完数判断
题目描述
一个数如果恰好等于它的因子之和,这个数就称 为“完数”。
例如,6 的因子为 1、2、3 ,而 6=1+2+3 ,因此 6 就是“完数”。又如,28 的因子为 1、2、4、7、14而28=1+2+4+7+14 ,因此 28 也是“完数”。
编写一个程序,判断用户输入的一个数是否为“完数”
输入
输入只有一行,即一个整数。
输出
输出只有一行,如果该数为完数,输出 yes,否则输出no。
#include <iostream>
#include <iomanip>
using namespace std;
int aaa(int);
int main()
{
	int n;
	cin>>n;
	if(aaa(n)==n)
	{
		cout<<"yes";
	}
	else
	{
		cout<<"no";
	}
	return 0;
}
int aaa(int q)
{
	int sum = 1;
	for(int i = 2;i*i<=q;i++)
	{
		if(q%i==0)
		{
			sum = sum+i+q/i;
		}
		if(i*i==q)
		{
			sum = sum-i;
		}
	}
	return sum;
}

n以内的质数
题目描述
求出 N 以内的全部素数,并按每行五个数显示。
输入
输入一个整数 N 。( N ≤1000 )
输出
依题意,输出满足条件的数!2 3 5 7 11 …………
#include <iostream>
#include <iomanip>
using namespace std;
bool aaa(int);
int main()
{
	int n;
	cin>>n;
	int sum = 0;
	for(int i = 2;i<=n;i++)
	{
		if(aaa(i)==true)
		{
			sum++;
			cout<<i<<" ";
			if(sum==5)
			{
				cout<<endl;
				sum = 0;
			}
		}
	}
	return 0;
}
bool aaa(int q)
{
	if(q==1) return false;
	if(q==2) return true;
	for(int j = 2;j<q;j++)
	{
		if(q%j==0)
		{
			return false;
		}
	}
	return true;
}

n到m之间质数的个数
题目描述
编程求正整数 M N 之间的所有素数的个数。( 1≤ M N ≤30000 )
输入
输入只有一行,包括 2 个整数 M , N ,之间用一个空格分开。
输出
输出只有一行(这意味着末尾有一个回车符号),包括 1 个整数。
样例
输入复制
1 20
输出复制
8
#include <iostream>
#include <iomanip>
using namespace std;
bool aaa(int);
int main()
{
	int n,m;
	cin>>n>>m;
	int sum = 0;
	for(int i = n;i<=m;i++)
	{
		if(aaa(i)==true)
		{
			sum++;
		}
	}
	cout<<sum;
	return 0;
}
bool aaa(int q)
{
	if(q==1) return false;
	if(q==2) return true;
	for(int j = 2;j<q;j++)
	{
		if(q%j==0)
		{
			return false;
		}
	}
	return true;
}

纯粹合数
题目描述
一个合数,去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下
来的数还是合数,这样反复,一直到最后剩下的一位数仍是合数;我们把这样的
数称为纯粹合数。求所有的三位纯粹合数。
输入
输出
若干个 3?位数,每行一个(从小到大)。
#include <iostream>
#include <iomanip>
using namespace std;
bool aaa(int);
int main()
{
	for(int i = 100;i<=999;i++)
	{
		int a = i%10;
		int b = i/10%10;
		int a1 = (i-a)/10;
		int a2 = (a1-b)/10;
		if(aaa(a1)==true&&aaa(a2)==true&&aaa(i)==true)
		{
			cout<<i<<endl;
		}
	}
	return 0;
}
bool aaa(int q)
{
	if(q==1) return false;
	if(q==2) return false;
	for(int j = 2;j<q;j++)
	{
		if(q%j==0)
		{
			return true;
		}
	}
	return false;
}

1-n之间完全数的个数
题目描述
一个大于1的正整数若等于全部因子的和,则称此数为完全
数。例如: 6 有因子 1,2,3 。同时 6=1+2+3 ,所以 6 是
完全数。
输入
一个正整数 N ( 10≤ N ≤100000 )
输出
小于等于 N 的完全数的个数。
#include <iostream>
#include <iomanip>
using namespace std;
int aaa(int);
int main()
{
	int cnt = 0;
	int n;
	cin>>n;
	for(int i = 2;i<n;i++)
	{
		if(aaa(i)==i)
		{
			cnt++;
		}
	}
	cout<<cnt;
	return 0;
}
int aaa(int q)
{
	int sum = 1;
	for(int i = 2;i*i<=q;i++)
	{
		if(q%i==0)
		{
			sum = sum+i+q/i;
		}
		if(i*i==q)
		{
			sum = sum-i;
		}
	}
	return sum;
}

孪生素数
题目描述
我们定义,如果 a a +2 都是素数(如 5 7 ),那么我们就
a a +2 是一对孪生素数。请写一个程序找出 2 N 之间的所有孪生
素数。
输入
一个整数 N 2< N <1000 )。
输出
若干行,每行两个整数,即一对孪生素数。
样例
输入复制
10
输出复制
3 5
5 7
输入复制
17
输出复制
3 5
5 7
11 13
#include <iostream>
#include <iomanip>
using namespace std;
bool aaa(int);
int main()
{
	int cnt = 0;
	int n;
	cin>>n;
	for(int i = 2;i<n-1;i++)
	{
		if(aaa(i)==true&&aaa(i+2)==true)
		{
			cout<<i<<" "<<i+2<<endl;
		}
	}
	return 0;
}
bool aaa(int q)
{
	if(q==1) return false;
	if(q==2) return true;
	for(int i = 2;i<q;i++)
	{
		if(q%i==0)
		{
			return false;
		}
	}
	return true;
}

文章来源:https://blog.csdn.net/mmz1207/article/details/135580381
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。