1、从键盘输入-个整数,判断该数是否为素数
什么是素数
素数(质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
思路
循环如果有因数直接返回false,否则返回true;
具体实现
bool sushu(int num) {
for(int i = 2; i < num; i++) {
if( num % i == 0) {
return false;
}
}
return true;
}
2、求解从2到20000的所有完数。
所有的真因数的和等于本身的数字称为完数
思路
定义一个遍历ans,从1-num进行遍历,如果是因数则与ans相加;如果ans最后等于num则返回1,否则返回-1
具体实现
int wanshu(int num) {
int ans = 0;
for( int i = 1; i < num; i++ ) {
ans += num % i == 0 ? i : 0;
}
if( ans == num ) {
return 1;
}
else {
return -1;
}
}
int main(){
for( int i = 20; i < 20000; i++ ) {
if( wanshu(i) == 1 )
cout << i << endl;
}
}