#include<stdio.h>
#include<string.h>
/* 求最长不重复子串 */
/************************************************************************/
void lnorepstr(char* s)
{
char A[26];
int i, j;
int maxi, maxlen = 0;
int len = strlen(s);
// for(i = 0; i < 26; i++)
// A[i] = -1;
memset(A, -1, 26);
for (i = 0; i < len; i++)
{
A[s[i] - 'a'] = 1;
for(j = i+1 ; j < len; j++)
{
if(A[s[j]-'a'] == -1) //该字符没有出现
{
A[s[j]-'a'] = 1;
if(j - i> maxlen)
{
maxlen = j - i;
maxi = i;
}
}
else
break;
}
memset(A, -1, 26);
}
printf("longest no repeat string: %.*s\n", maxlen+1, &s[maxi]);
}
int main()
{
lnorepstr("abcbef");
return 0;
}
/*将一个正整数进行质因数分解 */
/* 90=2*3*3*5 */
/******************************************************************/
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
bool isprime(int n)
{
if(n<2)
return false;
for(int i=2;i<=sqrt(double(n));i++)
if(n%i==0)
return false;
return true;
}
void printyinzi(int n,vector<int> & a,vector<int> & b)
{
cout<<n<<"=";
for(int i=0;i<a.size();i++)
{
while(n%a[i]==0)
{
b.push_back(a[i]);
n/=a[i];
}
if(n==0)
break;
}
}
int main()
{
vector<int> a,b;
a.push_back(2);
a.push_back(3);
int n;
cin>>n;
for(int i=5;i<=n/2;i++)
if(isprime(i))
a.push_back(i);
printyinzi(n,a,b);
if(b.size()==0)
cout<<"no yinzi"<<endl;
else
{
cout<<b[0];
if(b.size()>1)
{
for(i=1;i<b.size();i++)
cout<<"*"<<b[i];
}
}
cout<<endl;
return 0;
}