⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prime.cpp

📁 Thinkinc++English 电子书籍,英文版
💻 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 + -