凌先生


私信TA

用户名:H2130823069

访问量:2494

签 名:

英雄总是惺惺相惜的

等  级
排  名 339
经  验 5358
参赛次数 8
文章发表 12
年  龄 19
在职情况 学生
学  校 贺州学院
专  业 数据科学与大数据技术

  自我简介:

一只凌

TA的其他文章

解题思路:        由题目我们可知:是素数就以i=i的形式输出,不是就要以质因数分解的形式输出。

                       例:7是素数:7=7

                              64不是素数:64=2*2*2*2*2

                       所以,我们最好先打出一个函数判断是否是 素数 

                       然后再搞定 以质因数分解  ,这个玩意也用一个函数来表示,不会的可以参考一下俺的代码中的int bs(long long n)

                        我全都用long long 是因为确保而已,int应该也是可以的!!

注意事项:        注意题目给的2< =a< =b< =10000  

                      所以我们在  质因数分解 的函数代码中要把(64=2*2*2*2*2后面的质因数)判断到10000!!!!!!

                      切记!!!!

                       还有最后一个 * 不能输出来! 

参考代码:

#include<iostream>
using namespace std;
long long ss(long long n)

{	
	long long i;
	if(n<2) return 0;
	for(i=2;i<n;i++)
	{
		if(n%i==0)
			return 0;	
	}
	return 1;
}
void bs(long long n)
{
	int i,t=0;
	for(i=2;i<=10000;i++)
	{
		if(n%i==0)
		{
			if(t==0)
				cout<<i;
			else
				cout<<"*"<<i;
			n/=i;
			i--;
			t++;
		}
	}
	cout<<endl;
}
int main()
{
	long long i,a,b,sum=0;
	cin>>a>>b;
	for(i=a;i<=b;i++)
	{
		if(ss(i)==1)
			cout<<i<<"="<<i<<endl;
		else
		{
			cout<<i<<"=";
			bs(i);
		}
	}
	return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »