1、从键盘输入-个整数,判断该数是否为素数
什么是素数
素数(质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
思路
任取一个大于1的自然数与该数进行取余操作,余数为0则为素数;
具体实现
#include <iostream>
using namespace std;
bool is_su(int num) {
for(int i = 2; i < num; i++) {
if( num % i == 0) {
return false;
}
}
return true;
}
2、求解从2到20000的所有完数。
所有的真因数的和等于本身的数字称为完数
思路
从1-num进行遍历,统计所有真因子的和,如果于原址相等则为完数返回1,若不是则返回0.
具体实现
#include <iostream>
using namespace std;
int is_wan(int n)
{
int i,s=0;
for(i=1; i<=n/2; i++)
if(n%i==0)
s+=i;
if(s==n)
return 1;
return 0;
}
int main()
{
int n;
for(n=2;n<=20000;n++)
if(is_wan(n))
printf("%d,",n);
}