#include <iostream>
#include <sstream>
#include "math.h"
#include <stack>
#include <windows.h>
using namespace std;
void brute(int test);
void sqrts(int test);
int main()
{
int input;
cout << "Input a integer" << endl;
cin>>input;
LARGE_INTEGER m_liPerfFreq={0};
QueryPerformanceFrequency(&m_liPerfFreq);
LARGE_INTEGER m_liPerfStart={0};
QueryPerformanceCounter(&m_liPerfStart);
brute(input);
LARGE_INTEGER liPerfNow={0};
QueryPerformanceCounter(&liPerfNow);
long decodeDulation=( ((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000000)/m_liPerfFreq.QuadPart);
LARGE_INTEGER m_liPerfFreq2={0};
QueryPerformanceFrequency(&m_liPerfFreq2);
LARGE_INTEGER m_liPerfStart2={0};
QueryPerformanceCounter(&m_liPerfStart2);
sqrts(input);
LARGE_INTEGER liPerfNow2={0};
QueryPerformanceCounter(&liPerfNow2);
long decodeDulation2=( ((liPerfNow2.QuadPart - m_liPerfStart2.QuadPart) * 1000000)/m_liPerfFreq2.QuadPart);
cout.setf(ios::showpoint, ios::fixed);
cout.precision (10);
cout<<decodeDulation<<" "<<decodeDulation2<<endl;
return 0;
}
void brute(int test)
{
string str = "";
stringstream ss(str);
for(int i = 1 ; i <= test ; i++)
{
if(test%i == 0)
{
ss<<i<<"|";
}
}
cout<<ss.str()<<endl;
}
void sqrts(int test)
{
string str = "";
stringstream ss(str);
stack<int> first;
int temp;
double sq;
sq = (int) sqrt(test);
for(int i = 1 ; i <= sq ; i++)
{
if(test%i == 0)
{
ss<<i<<"|";
if(test/i != i)
{
first.push(test/i);
}
}
}
while(!first.empty())
{
temp = first.top();
first.pop();
ss<<temp<<"|";
}
cout<<ss.str()<<endl;
}
Wednesday, September 29, 2010
找因數 with C++
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment