C#算法题目,求助!
找出个位上数字之和为8,并且是素数的所有二位正整数的和,并输出这些数及其和。用C#或者VB做HELP!。...
找出个位上数字之和为8,并且是素数的所有二位正整数的和,并输出这些数及其和。
用C#或者VB做
HELP!。 展开
用C#或者VB做
HELP!。 展开
展开全部
int sum=0;
bool flag;
for(int i=10; i<100; i++)
{
int x = i / 10;//十位
int x = i % 10;//个位
if(x + y == 8)
{
flag = true;
for (int j = 2; j <= i; j++)
{
if (i % j == 0)//表示这是个合数,不是素数
{
flag = false;
break;
}
}
if (flag)
{
sum+=i;
//这里写你的打印i的语句
}
}
}
//最后这里写你的打印sum的语句
bool flag;
for(int i=10; i<100; i++)
{
int x = i / 10;//十位
int x = i % 10;//个位
if(x + y == 8)
{
flag = true;
for (int j = 2; j <= i; j++)
{
if (i % j == 0)//表示这是个合数,不是素数
{
flag = false;
break;
}
}
if (flag)
{
sum+=i;
//这里写你的打印i的语句
}
}
}
//最后这里写你的打印sum的语句
展开全部
嗯我看看,有点思路
我不知道有没有理解错
比如,3+5=8.这个3和5的个位和正好是8,然后就输出他们和他们的和?是这个意思吗?
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
//找出个位上数字之和为8,并且是素数的所有二位正整数的和,并输出这些数及其和。
int temp=0;
Console.WriteLine("输入一个数字,程序将帮你求出结果:");
try //异常处理
{
temp = Int32.Parse(Console.ReadLine());
}
catch (FormatException fe)
{
Console.WriteLine(fe.Message);
return;
}
for (int y = 2; y <= temp; y++)
{
if (!IsPrime(y)) //如果不是素数
continue;
if (y % 10 >= 8) //如果y % 10 大于了8(此时就不会存在个位相加为8了,因为个位为0的数字都是偶数
continue;
for (int x = y; x <= temp; x++) //注意这个x = y,避免重复
{
if (IsPrime(x) && (y % 10 + x % 10) == 8)
{
Console.WriteLine("{0}+{1}={2}", y, x, (x + y));
}
}
}
Console.ReadKey();
}
//这个是一个判断他是否是素数的方法
private static bool IsPrime(int k)
{
if (k == 2) //其实1不是素数,2是
return true;
else if (k % 2 == 0)
return false;
else
{
for (int i = 2; i <= Math.Sqrt(k); i++) //效率为主,Math.Sqrt(k)
if (k % i == 0)
return false;
return true;
}
}
}
}
你看看正确吗
输入99就可以达到你要的二位数
我不知道有没有理解错
比如,3+5=8.这个3和5的个位和正好是8,然后就输出他们和他们的和?是这个意思吗?
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
//找出个位上数字之和为8,并且是素数的所有二位正整数的和,并输出这些数及其和。
int temp=0;
Console.WriteLine("输入一个数字,程序将帮你求出结果:");
try //异常处理
{
temp = Int32.Parse(Console.ReadLine());
}
catch (FormatException fe)
{
Console.WriteLine(fe.Message);
return;
}
for (int y = 2; y <= temp; y++)
{
if (!IsPrime(y)) //如果不是素数
continue;
if (y % 10 >= 8) //如果y % 10 大于了8(此时就不会存在个位相加为8了,因为个位为0的数字都是偶数
continue;
for (int x = y; x <= temp; x++) //注意这个x = y,避免重复
{
if (IsPrime(x) && (y % 10 + x % 10) == 8)
{
Console.WriteLine("{0}+{1}={2}", y, x, (x + y));
}
}
}
Console.ReadKey();
}
//这个是一个判断他是否是素数的方法
private static bool IsPrime(int k)
{
if (k == 2) //其实1不是素数,2是
return true;
else if (k % 2 == 0)
return false;
else
{
for (int i = 2; i <= Math.Sqrt(k); i++) //效率为主,Math.Sqrt(k)
if (k % i == 0)
return false;
return true;
}
}
}
}
你看看正确吗
输入99就可以达到你要的二位数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是我说,你这题目根本就没写对。
希望你问问题也稍微认真点,对你自己负责。。。
希望你问问题也稍微认真点,对你自己负责。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
o(∩_∩)o...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-03-18
展开全部
题目不清
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
标记下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询