using System;
public class Test
{
public static int howmany(int x, int y)
{
int count = 0;
for (int i = x; i < y; i++)
{
if (isSemiPrimer(i))
{
count++;
}
}
return count;
}
public static void Main()
{
DateTime dateStart = DateTime.Now;
Console.WriteLine(howmany(1, 2000000));
TimeSpan span = DateTime.Now - dateStart;
Console.WriteLine(span.TotalSeconds.ToString());
}
public static bool isPrime(int x)
{
for (int i = 2; i <= Math.Sqrt((double)x); i++)
{
if (x % i == 0)
{
return false;
}
}
return true;
}
public static bool isSemiPrimer(int x)
{
for (int i = 2; i <= Math.Sqrt((double)x); i++)
{
if (x % i == 0)
{
return isPrime(x / i) && isPrime(i);
}
}
return false;
}
}原文:http://blog.csdn.net/a120705230/article/details/19307247