蓝蓝算法第二期打卡

92 阅读1分钟

1、从键盘输入一个整数,判断该数是否是素数

思路:

让输入的数从2除到自己的平方根,若出现可以整除的情况,则不是素数 代码

{
	if (num == 1)
		return 1;
	for (int i = 2; i <= sqrt(num); i++)
		if (i * (num / i) == num)
			return 0;
	return 1;
}

2、求解1到2000的所有完数

思路

先求出所有的约数,再相加判断,从1到2000重复这个循环

{
	for (i = 2; i <= 2000; i++)
	{
		int sum = 1;
		for (int j = 2; j <= sqrt(i); j++)
			if (j * (i / j) == i)
				sum += i + i / j;
		if (sum == i)
			cout << i << endl;
	}
}

30分钟写完的,写的仓促,也没做验证,如有错误请指出,谢谢