标签:输出 25 int 练习 整数 a1 分解 质因数 输入
问题描述 求出区间[a,b]中所有整数的质因数分解。 输入格式 输入两个整数a,b。 输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例) 样例输入 3 10 样例输出 3=34=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5 提示 先筛出所有素数,然后再分解。 数据规模和约定 2<=a<=b<=10000
1 /* 2 2020年3月25日18:02:10 3 蓝桥杯习题 4 问题描述 5 求出区间[a,b]中所有整数的质因数分解。 6 输入格式 7 输入两个整数a,b。 8 输出格式 9 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例) 10 样例输入 11 3 10 12 样例输出 13 3=3 14 4=2*2 15 5=5 16 6=2*3 17 7=7 18 8=2*2*2 19 9=3*3 20 10=2*5 21 提示 22 先筛出所有素数,然后再分解。 23 数据规模和约定 24 2<=a<=b<=10000 25 */ 26 27 #include<iostream> 28 #include<cmath> 29 using namespace std; 30 31 int fun(int n) 32 { 33 int m; 34 m = (int)sqrt(n); 35 int i; 36 for(i = 2; i <= m; i++) 37 { 38 if(n % i == 0) 39 return i; 40 } 41 return n; 42 } 43 44 int main() 45 { 46 int a,b; 47 while(cin >> a >> b) 48 { 49 int i , k; 50 for(i = a; i <= b; i++) 51 { 52 int j = fun(i); 53 k = i / j; 54 cout << i << '=' << j; 55 while(k > 1) 56 { 57 j = fun(k); 58 k = k / j; 59 cout << '*' << j; 60 } 61 cout << endl; 62 } 63 } 64 return 0; 65 }
网上大佬做法真的服了!
/*2020年3月25日18:08:39 判断素数 输入一个整数 输出是否 */ #include<iostream> #include<cmath> using namespace std; int isPrime(int n) { int m; m = (int)sqrt(n); int i; for(i = 2; i <= m; i++) { if(n % i == 0) break; } //如果i全部不能被n整除,i就变成m+1,所以要判断i是否大于m if(i > m) return 1; else return 0; } int main() { int num; while(cin >> num) { if(isPrime(num)) cout << num << "是素数!" << endl; else cout << num << "不是素数!" << endl; } return 0; }
我这条咸鱼终于把素数判断弄懂了。
标签:输出,25,int,练习,整数,a1,分解,质因数,输入 来源: https://www.cnblogs.com/wlyperfect/p/12568585.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。