枚举巩固1+2
青藤oj #10198. 约数总和
题目描述
给出一个数n,计算n的所有的约数的总和
输入格式
一个整数n
输出格式
一个整数表述n的所有的约数的总和
思路
如果n=1,直接输出1;
如果n!=1,就先枚举到根号n,找出所有约数,然后判断约数是否重复,像是3*3=9;
然后累加输出;
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n,sum=0;
cin>>n;
if(n==1)
{
cout<<1;
return 0;
}
for(int i=1;i<=sqrt(n);i++)
{
if(n%i==0)
if(n/i!=i)
sum+=i+n/i;
else
sum+=i;
}
cout<<sum;
return 0;
}
青藤oj #10186. 质因数分解
题目描述
已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。
输入格式
输入只有一行,包含一个正整数 n。
输出格式
输出只有一行,包含一个正整数 p,即较大的那个质数。
思路
如果输入等于2,直接输出2;
如果不等于2,枚举找出所有质因数,输出最大的;
代码
#include<bits/stdc++.h>
using namespace std;
void h(int k)
{
int max=-1;
if(k==2)
cout<<"2"<<endl;
else
{
for(int i=2;i<=sqrt(k);i++)
{
while(k!=i)
{
if(k%i==0)
{
if(max<i