
cpp
#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。
cpp
#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 ............
cpp
#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
cpp
#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 位数,每行一个(从小到大)。
cpp
#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 的完全数的个数。
cpp
#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
cpp
#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;
}