PDA

View Full Version : سوال: عدد تام



bghad1
چهارشنبه 12 خرداد 1389, 19:03 عصر
سلام....خوبین؟

یه سوال داشتم...من یه کد رو از سی پلاس برگردوندم به سی شارپ ، که برای محاسبه عدد تام هستش....(عدد تام یعنی مجموع مقسوم علیه های آن بقی برابر خود عدد باشد)

اما درست کار نمی کنه...میشه راهنمایی کنین لطفاً؟

ممنون




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace adade_tam
{
class Program
{
static void Main(string[] args)
{
int i = 1;
int p = 0;
int mod, n;
Console.WriteLine("Enter the number ");
n = Convert.ToInt32(Console.ReadLine());
while (i == 0)
{
mod = n % i;
if (mod == 0)
{
p += i;
i++;
}
}
if (p == n)
Console.WriteLine(" number is tamam ! ");
else
Console.WriteLine("number is not tamam !");
}
}
}

gwbasic
جمعه 14 خرداد 1389, 01:23 صبح
namespace adade_tam
{
class Program
{
static void Main(string[] args)
{
int i = 1;
int p = 0;
int mod, n;
Console.WriteLine("Enter the number ");
n = Convert.ToInt32(Console.ReadLine());
while (i <= n/2)
{
mod = n % i;
if (mod == 0)
{
p += i;
}
i++;
}
if (p == n)
Console.WriteLine(" number is tamam ! ");
else
Console.WriteLine("number is not tamam !");
}
}
}

bghad1
جمعه 14 خرداد 1389, 19:58 عصر
ممنون از شما دوست عزیز...اما برنامه کار نمی کنه!!! :ناراحت:
نمی دونم چرا...

میشه امتحان کنین لطفاً ؟ :افسرده:

عدد رو که میدین و اینتر رو که می زنین .... دیگه هیچ کاری نمی کنه و باید بیاین بیرون از برنامه....:عصبانی++:


چرا اینجوریه به نظرتون؟؟؟

میلاد قاضی پور
شنبه 15 خرداد 1389, 00:24 صبح
int a, b=0;
a =Convert.ToInt32(console.readline);
for (int i = 1; i < a; i++)
{
if ((a % i) == 0)
b += i;
}
if (b == a)
console.writeline("kamel");
else
console.writeline("mkamelnist");

میلاد قاضی پور
شنبه 15 خرداد 1389, 00:26 صبح
فکر کنم اشتباه کد دوستمون اونجاش بود که شرط مساوی بودن رو داخل وایل بررسی کردن

gwbasic
یک شنبه 16 خرداد 1389, 14:32 عصر
ممنون از شما دوست عزیز...اما برنامه کار نمی کنه!!! :ناراحت:
نمی دونم چرا...

میشه امتحان کنین لطفاً ؟ :افسرده:

عدد رو که میدین و اینتر رو که می زنین .... دیگه هیچ کاری نمی کنه و باید بیاین بیرون از برنامه....:عصبانی++:


چرا اینجوریه به نظرتون؟؟؟

دو تا مشکل کد شما داره
1- شرط حلقه While
2- ++i باید بیرون if باشد

به کدی که فرستادم دقت کنید

mmd2009
یک شنبه 16 خرداد 1389, 14:41 عصر
دوست عزیز ببین این کار میکنه :





namespace adade_tam
{
classProgram
{
staticvoid Main(string[] args)
{
int i = 1;
int p = 0;
int mod, n;
Console.WriteLine("Enter the number ");
n = Convert.ToInt32(Console.ReadLine());
for(i=1; i<n ; i++)
{
mod = n%i;
if(mod==0)
p+=i;
}
if (p == n)
Console.WriteLine(" number is tamam ! ");
else
Console.WriteLine("number is not tamam !");
}
}
}

mmd2009
یک شنبه 16 خرداد 1389, 14:48 عصر
من کد بالارو هم بردم تو یک برنامه و درست کار کرد به این گونه :





int i = 1;
int p = 0;
int mod, n;
// Console.WriteLine("Enter the number ");

// n = Convert.ToInt32(Console.ReadLine());

n = int.Parse(textBox1.Text);
for (i = 1; i < n; i++)
{
mod = n % i;
if (mod == 0)
p += i;
}
if (p == n)
// Console.WriteLine(" number is tamam ! ");

MessageBox.Show("tam");
else

// Console.WriteLine("number is not tamam !");

MessageBox.Show("no tam");

exlord
یک شنبه 16 خرداد 1389, 16:09 عصر
به عددی طبیعی تام میگویند هر گاه مجموع مقسوم علیه های آن برابر دو برابر آن عدد باشند مثلا ۶ تام است

private void button2_Click(object sender, EventArgs e)
{
int num = int.Parse(textBox1.Text);
int sum = num;//har adadi bar khodash bakhshpazir ast
for (int i = 1; i <= num/2; i++)
{
if (num % i == 0)
sum += i;
}
if (sum == num*2)
label1.Text = "yes";
else
label1.Text = "no";
}