#include<iostream>#include<vector>#include<cmath>usingnamespace std;
vector<int> primes;int index =0;boolis_prime(int num){for(int i =2; i <=sqrt(num *1.0);++i){if(num % i ==0)returnfalse;}returntrue;}voidfind_prime(){for(int i =2; i <100010;++i){if(is_prime(i)){
primes.push_back(i);
index++;}}}structfactor{int fac;// 素数因子及其个数int num;};
vector<factor> factors;int f_index =0;intmain(){find_prime();int N;
cin >> N;if(N ==1)// 1的特殊情况{
cout <<"1=1";return0;}
cout << N <<"=";for(int i =0; i < index;++i){if(N % primes[i]==0){
factor f;
f.fac = primes[i];
f.num =0;while(N % primes[i]==0)// 可能有多个相同素数因子{
f.num++;
N /= primes[i];}
factors.push_back(f);
f_index++;}if(N ==1)break;// 已找出全部因子,break}for(int i =0; i < f_index;++i){
cout << factors[i].fac;if(factors[i].num >1)
cout <<"^"<< factors[i].num;if(i < f_index -1)
cout <<"*";}return0;}
B1013 数素数
#include<iostream>#include<vector>#include<cmath>usingnamespace std;constint maxn =1e8+5;int primes[maxn];int index =0;int M, N;boolis_prime(int n){for(int i =2; i <=sqrt(n *1.0);++i){if(n % i ==0)returnfalse;}returntrue;}voidfind_prime(){for(int i =2; i < maxn;++i){if(index >= N)break;if(is_prime(i))
primes[index++]= i;}}intmain(){
cin >> M >> N;find_prime();int count =0;for(int i = M -1; i < N;++i){
cout << primes[i];
count++;if(count %10!=0&& i != N -1)
cout <<" ";else
cout << endl;}return0;}