解题思路:
首先先判断这个数字是不是素数
如果是素数在判断他余数有没有零
如果两个都满足的话,(在这里输出这个数字,然后加一个*)
那原本这个数字就等于这个数字整除以刚刚那个素数
然后从头再进行判断
一直到剩下的这个数字本身是一个素数
注意事项:
参考代码:
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int s(int a)
{
int c=1;
for (int i=2;i<=sqrt(a);i=i+2)
{
if(i==1)i=2;
if(a%i==0)
{c=0;
break;
}
if(i==2)i=1;
}
return c;//1 为 素数
}
int sc(int n)
{
cout<<n<<"=";
while(s(n)==0)
{
for(int i=2;i<n;i++)
{
if(n%i==0 and s(i)==1)
{
cout<<i<<"*";
n=n/i;
break;//跳出for判断现在本身是不是素数
}
}
}
cout<<n<<endl;
return 0;
}
int main()
{
int a,b;
cin>>a>>b;
for(int i=a;i<=b;i++)
{
sc(i);
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复