1、从键盘输入一个整数,判断该数是否为素数
什么是素数
素数又叫质数,是指大于1的自然数中,除了1和它本身之外不再有其他因素的自然数
思路
分析:
1.先从控制台输入一个数
2.利用for循环,从最小的素数2开始,条件小于输入数的开平方根
3.在循环中判断n余上2到sqrt(n),等于零不是素数,反之是素数
具体实现
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n;
cout<<"请输入一个数:"<<endl;
cin>>n;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
cout<<n<<"不是素数"<<endl;
return 1;
}
}
cout<<n<<"是素数"<<endl;
}
2、求解从2到20000的所有完数
什么是完数
所有的真因数的和等于本身的数字称为完数
思路
分析:
1.先从控制台输入求解范围
2.利用一层for循环,从2开始依次遍历
3.在二层循环中求出i除了本身之外的因子并加和,和等于i本身是完数,反之不是
具体实现
#include<iostream>
using namespace std;
int main(){
int i,j,k,sum;
cout<<"请输入所求整数范围上限:"<<endl;
cin>>k;
for(i=2;i<=k;i++){
sum=0;
for(j=1;j<i;j++){
if(i%j==0)
sum+=j;
}
if(sum==i)
cout<<"完数为:"<<i<<endl;
}
return 0;
}