1求水仙花数 编程求所有的水仙花数,水仙花数是指一个三位数,其各位数字立方和等于该数本身,例如: 153是水仙花数,因为153=1*1*1+5*5*5+3*3*3 #include using namespace std: int main() int num; int a,b,c; for(num=100;num using namespace std; int main() { int num; int sum; for(um=2;um<=1000;num++)/枚举列出1000以内的数 { sum=0,/思考:初始化为0为什么需要写在循环体中? for(inti=1;i<=num-l,i+)/∥枚举列出每个数num的因子 if(num%i==0)/如果有因子
1 求水仙花数 编程求所有的水仙花数,水仙花数是指一个三位数,其各位数字立方和等于该数本身,例如: 153 是水仙花数,因为 153 = 1*1*1+5*5*5+3*3*3 #include using namespace std; int main() { int num; int a,b,c; for(num = 100; num using namespace std; int main() { int num; int sum; for(num = 2; num <= 1000 ; num ++) //枚举列出 1000 以内的数 { sum = 0;//思考: 初始化为 0 为什么需要写在循环体中? for(int i = 1; i <= num-1; i ++) //枚举列出每个数 num 的因子 { if( num % i == 0) //如果有因子
sum=sum+i;/求因子之和 } if(num=sum)/如果因子之和等于该数本身,则是完数 cout <num <<endl; } return 0; }求一个大的数的完数 https://www.acwing.com/problem/content/description/727/ 一个整数,除了本身以外的其他所有约数的和如果等于该数,那么我们就称这个整数为 完全数。 例如,6就是一个完全数,因为它的除了本身以外的其他约数的和为1+2+3=6。 现在,给定你N个整数,请你依次判断这些数是否是完全数。 输入格式 第一行包含整数N,表示共有N个测试用例。 接下来N行,每行包含一个需要你进行判断的整数X。 输出格式 每个测试用例输出一个结果,每个结果占一行。 如果测试数据是完全数,则输出X is perfect'”,其中X是测试数据。 如果测试数据不是完全数,则输出X is not perfect'”,其中X是测试数据。 数据范围 1≤N≤100 1sX≤108 输入样例: 3 6 5 28 输出样例: 6 is perfect 5 is not perfect 28 is perfect 注意:代码要优化,否则容易超时 100 42584631
{ sum = sum +i; //求因子之和 } } if( num == sum) //如果因子之和等于该数本身 ,则是完数 { cout << num <<endl; } } return 0; } 求一个大的数的完数 https://www.acwing.com/problem/content/description/727/ 一个整数,除了本身以外的其他所有约数的和如果等于该数,那么我们就称这个整数为 完全数。 例如,6 就是一个完全数,因为它的除了本身以外的其他约数的和为 1+2+3 = 6。 现在,给定你 N 个整数,请你依次判断这些数是否是完全数。 输入格式 第一行包含整数 N,表示共有 N 个测试用例。 接下来 N 行,每行包含一个需要你进行判断的整数 X。 输出格式 每个测试用例输出一个结果,每个结果占一行。 如果测试数据是完全数,则输出“X is perfect”,其中 X 是测试数据。 如果测试数据不是完全数,则输出“X is not perfect”,其中 X 是测试数据。 数据范围 1≤N≤100 1≤X≤108 输入样例: 3 6 5 28 输出样例: 6 is perfect 5 is not perfect 28 is perfect 注意:代码要优化,否则容易超时 100 42584631
6407132 16116057 7794585 36700210 6124684 39551457 80877955 22089554 92725984 17892387 63149937 45801500 22079144 96231364 30709828 55815955 65061548 66239979 16828721 87920927 96466470 71764408 80614904 19205128 91942507 23911522 35377761 27131983 77576341 52241764 20309670 56081352 70259677 45580358 70625412 494992 78765532 13811846
6407132 16116057 7794585 36700210 6124684 39551457 80877955 22089554 92725984 17892387 63149937 45801500 22079144 96231364 30709828 55815955 65061548 66239979 16828721 87920927 96466470 71764408 80614904 19205128 91942507 23911522 35377761 27131983 77576341 52241764 20309670 56081352 70259677 45580358 70625412 494992 78765532 13811846
33550336 85173548 7565563 49144260 50199698 97261316 71324087 43062912 20997589 46314429 44660813 86203791 15889515 51433644 24618779 21559340 5002115 79022519 66337449 77795302 67619032 28217436 43223746 35253484 33398946 33304239 33850792 28578249 63897696 47469710 65641128 16389277 69230977 16530280 38754260 45608824 75934018 87340226
33550336 85173548 7565563 49144260 50199698 97261316 71324087 43062912 20997589 46314429 44660813 86203791 15889515 51433644 24618779 21559340 5002115 79022519 66337449 77795302 67619032 28217436 43223746 35253484 33398946 33304239 33850792 28578249 63897696 47469710 65641128 16389277 69230977 16530280 38754260 45608824 75934018 87340226
2835183 45982573 4575572 97761145 742249 72248968 94567693 78632580 88392320 58459087 15083149 3853893 6064149 69544365 37265792 17685249 70414350 50977398 32076767 68224989 53411902 98886720 50815664 参考代码: #include using namespace std; int main() int N; cin>>N; int x, int sum 1; for(inti=l,i←N,i+) cin >>x; sum=1;∥初始值设定为1 for(intj=2;j<=sqrt(x,j+)∥因子不能包括自己,所以为了累加x,因子从 2开始(每次可以得到两个因子,只需要枚举到x的平方根就好
2835183 45982573 4575572 97761145 742249 72248968 94567693 78632580 88392320 58459087 15083149 3853893 6064149 69544365 37265792 17685249 70414350 50977398 32076767 68224989 53411902 98886720 50815664 参考代码: #include using namespace std; int main() { int N; cin >> N; int x; int sum = 1; for(int i = 1; i >x; sum = 1; //初始值设定为 1 for(int j = 2; j <= sqrt(x); j ++ ) //因子不能包括自己,所以为了累加 x/j,因子从 2 开始 (每次可以得到两个因子,只需要枚举到 x 的平方根就好
if(x%j=0) sum =sum +j; sum=sum+x;/如果数j为x的因子,则xj也为j的因子 } if(sum=x&&x!=1) cout using namespace std; int main() int num; intx∥用x的值为1或者0来判断是否是质数(1除外) cin>num;/除1以外 int i; x=1;/思考:为什么需要初始化? for(i=2;i<=num-1;i++) { if(num%i=0) X=0; break∥只要找到一个质数,就不用再找了 } if(x==1)cout <<"yes"<<endl;
{ if( x % j == 0) { sum = sum +j; sum = sum + x/j; //如果数 j 为 x 的因子,则 x/j 也为 j 的因子 } } if( sum == x && x!= 1) { cout using namespace std; int main() { int num; int x; //用 x 的值为 1 或者 0 来判断是否是质数(1 除外) cin >> num; //除 1 以外 int i; x = 1;//思考:为什么需要初始化? for( i = 2; i <= num -1; i ++) { if( num % i == 0) { x = 0; break;//只要找到一个质数,就不用再找了 } } if(x == 1) cout << "yes" <<endl;
if(x=0)cout using namespace std; int main() { int num; itx1∥用x的值为1或者0来判断是否是质数(1除外) int i; for(num=2;num <=200;num++) { x=1;∥思考:为什么需要初始化? for(i=2;i<=num -1;i+) if(num %i==0) X=0: break:∥只要找到一个质数,就不用再找了 ifx=1)cout<num<<"";∥如果是质数,就输出 } return 0: 51.5--21角谷猜想 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以 2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算 过程分别为16、8、4、2、1。 程序要求输入一个整数,将经过处理得到1的过程输出来。 输入 一个正整数NN<=2,000,000) 输出
if( x == 0) cout using namespace std; int main() { int num; int x; //用 x 的值为 1 或者 0 来判断是否是质数(1 除外) int i; for(num = 2; num <= 200 ; num ++) { x = 1;//思考:为什么需要初始化? for( i = 2; i <= num -1; i ++) { if( num % i == 0) { x = 0; break;//只要找到一个质数,就不用再找了 } } if(x == 1) cout << num <<" "; //如果是质数,就输出 } return 0; } 5 1.5----21 角谷猜想 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 3 加 1,如果是偶数,则除以 2,得到的结果再按照上述规则重复处理,最终总能够得到 1。如,假定初始整数为 5,计算 过程分别为 16、8、4、2、1。 程序要求输入一个整数,将经过处理得到 1 的过程输出来。 输入 一个正整数 N(N <= 2,000,000) 输出
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"Ed"。 如果输入为l,直接输出"End"。 样例输入 5 样例输出 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 End #include using namespace std; int main() { long long num; cin >num; for(:num !=1: if(num%2==0 { cout <<num<<"/2="; num num /2; cout <num <<endl: } if(num %2 =1) { cout<<num<"*3+1="; num=num 3+1; cout <num <<endl; } cout <<"End"<<endl; return 0;
从输入整数到 1 的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。 如果输入为 1,直接输出"End"。 样例输入 5 样例输出 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 End #include using namespace std; int main() { long long num; cin >> num; for(;num != 1;) { if( num % 2 == 0 ) { cout <<num << "/2="; num = num /2; cout << num <<endl; } if( num % 2 == 1 ) { cout <<num<<"*3+1=" ; num = num * 3 + 1; cout << num <<endl; } } cout << "End"<<endl; return 0; }
61.5-24测量血压 描述 监护室每小时测量一次病人的血压,若收缩压在90-140之间并且舒张压在60-90之间(包 含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最 长小时数。 输入 第一行为一个正整数n,n/C++的万能头文件 using namespace std; int main() { int n; cin >n; int hl.h2: int hour=0: int max =0; for(inti=1:ihl>>h2; if(h1>=90&&h1=60&&h2<=90) hour++; if(max hour) max=hour;
6 1.5--24 测量血压 描述 监护室每小时测量一次病人的血压,若收缩压在 90 - 140 之间并且舒张压在 60 - 90 之间(包 含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最 长小时数。 输入 第一行为一个正整数 n,n //C++的万能头文件 using namespace std; int main() { int n; cin >> n; int h1,h2; int hour = 0; int max = 0; for(int i = 1; i > h1 >> h2; if(( h1 >= 90 && h1 = 60 && h2 <= 90)) { hour ++; if( max < hour) { max = hour; }
else hour =0: cout /C++的万能头文件 using namespace std; int main() { int n,x; int count =0: cin>>n: for(inti=1;i>x; inta=x/1000:/∥千位
} else { hour = 0; } } cout //C++的万能头文件 using namespace std; int main() { int n,x; int count = 0; cin >> n; for(int i = 1; i > x; int a = x / 1000;// 千位