📄 prime.cpp
字号:
// Prime.cpp : Implementation of CPrime
#include "stdafx.h"
#include "Simple17.h"
#include "Prime.h"
/////////////////////////////////////////////////////////////////////////////
// CPrime
STDMETHODIMP CPrime::GetNext(long *pVal)
{
while(1) // 开始计算 m_nNow 以后的第一个素数
{
m_nNow ++;
for( long i = 2; i<m_nNow; i++ )
{
if( m_nNow % i == 0 ) break; // 能够被整除,则不是素数
}
if( i == m_nNow ) break; // 找到了素数,停止计算
}
*pVal = m_nNow;
m_bDirty = true; // 内部数据已经修改
return S_OK;
}
// IPersist
STDMETHODIMP CPrime::GetClassID(/*[out]*/CLSID * pClassID)
{
*pClassID = GetObjectCLSID();
return S_OK;
}
// IPersistStream
STDMETHODIMP CPrime::IsDirty(void)
{
if( m_bDirty ) return S_OK;
else return S_FALSE;
}
STDMETHODIMP CPrime::Load(/*[in]*/IStream *pStm)
{
return pStm->Read( &m_nNow, sizeof(long), NULL);
}
STDMETHODIMP CPrime::Save(/*[in]*/IStream *pStm,/*[in]*/BOOL fClearDirty)
{
if( fClearDirty ) m_bDirty = false;
return pStm->Write( &m_nNow, sizeof(long), NULL );
}
STDMETHODIMP CPrime::GetSizeMax(/*[out]*/ULARGE_INTEGER *pcbSize)
{
pcbSize->LowPart = sizeof(long);
pcbSize->HighPart = 0;
return S_OK;
}
// IPersistStreamInit
STDMETHODIMP CPrime::InitNew(void)
{
m_nNow = 0;
m_bDirty = true;
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -