PDA

ดูเวอร์ชั่นเต็ม : ช่วยเขียนภาษา C ด้วยครับ



_Lucifer-
2nd September 2012, 08:48
ผมได้โจทย์มาว่า
1.หาผลรวมของเลขจำนวนเฉพาะ ตั่งแต่ 19-n นะครับ
2.หาผลคูณของเลขจำนวนเฉพาะตั้งแต่ 0-100 เฉพาะเขที่ มีหลักสิบหารลงตัว
3.หาผลบวกของจำนวนเฉพาะที่หักสิบหารลงตัวตั้งแต่ 0-999

บอกตามตรง งง มากๆ รบกวนช่วยทีครับ
ปวดหัวมากครับตอนนี่

HANG-ON
2nd September 2012, 11:13
ผมโง่คณิตมากๆครับ แต่ขอลองหน่อยนะครับ ถ้าผิดต้องขออภัย

ข้อ 2 จำนวนเฉพาะ ก็มี 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89 และ 97

หาผลคูณเฉพาะเลขที่มีหลัก10หารลงตัว ตัดตัวที่เป็นหลักหน่วยออกให้หมด จะเหลือ 11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89 และ 97

เอาเลขทั้งหมดนี้มาคูณกัน...คือผมเข้าใจงี้อะ -.-

hight007
2nd September 2012, 11:26
ข้อ 1 ปล.อ่านโจทย์เมาไปหน่อย

ใช้หลักประมาณข้อ 3 แต่เริ่มที่ 19

แล้ววน for บวกเอา

ข้อ 2 มีหลักสิบหารลงตัว คืออะไรไม่มั่นใจ

ข้อ 3 ผมว่าหาจำนวนเฉพาะ 0-999 ให้ได้ก่อนละกัน - -.

วิธีน่าจะ ตอนแรกให้เลข 2-999 แล้วถ้าตัวไหนหาร 2 ลงตัวก็ตัดออกไปเรื่อยๆจนถึง 999 เสร็จแล้วก็มาทำ 3 ตัวไหนหาร 3 ลงตัวก็ตัดออก ทำงี้ไปเรื่อยๆก็จะได้เลขจำนวนเฉพาะตั้งแต่ 0-999 ละครับ ที่เหลือทำเองละกัน - -.


ตรงวีธีที่ 3 ใช้แค่ 2 กับ 3 ไม่ได้ครับ ยังมี 5 อีก *.*

ผมก็บอกให้ทำไปเรื่อยๆไงครับ มันจะเป็นบิกโอ n^2 คือทำ 2 เสร็จแล้วก็ 3 แล้วก็ทำ 4 แต่ 4 โดน 2 ตัดไปแล้วก็ทำ 5 ต่อ แล้วก็ 6 แต่ 6 โดน 2 ตัดไปแล้วก็ 7 แล้วก็ .......... ยาว

_Lucifer-
2nd September 2012, 12:04
^
^
ขอบคุณครับ ท่านทั้ง 2 มาก
ครับ จะลองเอาไปประยุกต์ดู

Shizuku
2nd September 2012, 12:09
19 - n !?!
n = input ?

_Lucifer-
2nd September 2012, 12:29
^
^
ืn = ตัวแปรมั้งครับ จารย์ท่านไม่บอกอะไรเพิ่มเติมเลย ผมคงคิดว่าไอ N ต้องกำหนดเอง
หรือคือ input --*

Emerald01
2nd September 2012, 12:36
ข้อ 1 ปล.อ่านโจทย์เมาไปหน่อย

ใช้หลักประมาณข้อ 3 แต่เริ่มที่ 19

แล้ววน for บวกเอา

ข้อ 2 มีหลักสิบหารลงตัว คืออะไรไม่มั่นใจ

ข้อ 3 ผมว่าหาจำนวนเฉพาะ 0-999 ให้ได้ก่อนละกัน - -.

วิธีน่าจะ ตอนแรกให้เลข 2-999 แล้วถ้าตัวไหนหาร 2 ลงตัวก็ตัดออกไปเรื่อยๆจนถึง 999 เสร็จแล้วก็มาทำ 3 ตัวไหนหาร 3 ลงตัวก็ตัดออก ทำงี้ไปเรื่อยๆก็จะได้เลขจำนวนเฉพาะตั้งแต่ 0-999 ละครับ ที่เหลือทำเองละกัน - -.
ตรงวีธีที่ 3 ใช้แค่ 2 กับ 3 ไม่ได้ครับ ยังมี 5 อีก *.*

Shizuku
2nd September 2012, 12:46
n = ตัวแปรมั้งครับ จารย์ท่านไม่บอกอะไรเพิ่มเติมเลย ผมคงคิดว่าไอ N ต้องกำหนดเอง
หรือคือ input --*

จขกท. ทำถึงไหนแล้วครับ ?
แล้วใช้ C ตัวไหนครับ ?

Psych-
2nd September 2012, 12:59
ข้อ 1 หลักการนะครับ จำนวนเฉพาะคือจำนวนที่มีเลขแค่ 2 ตัวที่หารมันลงตัว คือ 1 กับตัวมันเอง เอาโปรแกรมนี้ไปดูนะครับ ผมเขียนเองมั่วๆหน่อยแต่ใช้งานได้ = = คำตอบข้อ 2 เลยละ เออลืมบอกใช้ c# นะ C มิเก่งพอ = = แต่น่าจะเทียบเคียงกันได้เพราะมันไม่่ต่างกันมาก
using System;

namespace egwrghrh
{
class Program
{
public static void Main(string[] args)
{
int sum=0;
int x;


Console.Write("input n: ");
int n=int.Parse(Console.ReadLine());
for( x=19;x<=n;x++){int count=0;
for(int i=1;i<=x;i++){

if(x%i==0)
count++;}
if(count==2)
sum=sum+x;
}
Console.WriteLine(sum);
Console.ReadLine();
}
}}

ส่วนข้อ 2 นี่รู้สึกเลขมันจะเยอะเกินไปค่าของผมเลยออกมาแปลกๆ = =
using System;

namespace egwrghrh
{
class Program
{
public static void Main(string[] args)
{
long sum=1;
int x;



for( x=2;x<=100;x++){
int count=0;

for(int i=1;i<=x;i++){

if(x%i==0)
count++;}
if(count==2)

sum=sum*x;
}
Console.WriteLine(sum);
Console.ReadLine();
}
}}

ข้อ 3 นี่ผมโง่เลขหรือเปล่าไม่รู้นะ จำนวนเฉพาะที่ 10 หารลงตัว มันไม่มีหรือเปล่า = = เพราะ10 มันไม่ใช่จำนวนเฉพาะแล้วอ่ะ แต่ถ้าโปรแกรมก็ได้แบบนี้อ่ะ
using System;

namespace egwrghrh
{
class Program
{
public static void Main(string[] args)
{
long sum=0;
int x;



for( x=2;x<=999;x++){
int count=0;
if(x%10==0){

for(int i=1;i<=x;i++){

if(x%i==0)
count++;}

if(count==2)

sum=sum+x;
}}
Console.WriteLine(sum);
Console.ReadLine();
}
}}

_Lucifer-
2nd September 2012, 12:59
เป็น C ธรรมดาครับ ผ่าน Turbo C++
ตอนนี้ทำให้มันออกมาเป็ฯจำนวนเฉพาะได้แล้วแต่ให้มันคำนวนไม่ได้ครับ --*

Shizuku
2nd September 2012, 13:15
เป็น C ธรรมดาครับ ผ่าน Turbo C++
ตอนนี้ทำให้มันออกมาเป็ฯจำนวนเฉพาะได้แล้วแต่ให้มันคำนวนไม่ได้ครับ --*

ประกาศตัวแปลไว้เก็บค่าอีกตัว
ตัวอย่าง ข้อแรก
int sum = 0;
------------------------------------------------------------
ข้อแรก อันนี้เป็น Dev c++ นะ
จขกท. เอาไปเขียนเป็น Turbo c เองนะ อิอิ
------------------------------------------------------------
#include <cstdio>
int main()
{
int input, n, sum = 0;
scanf("%?", &input);
{
loop(n=?; n<=?; n++)
{
loop(n%?!=0 && n%?!=0 && n%?!=0 && n%?!=0)
sum = sum+?;
}
printf("%? ", sum);
}
return 0;
}
------------------------------------------------------------
จะเฉลยแล้วนะนั้น ฮ่าๆ เหลือให้คิดนิดนึง
------------------------------------------------------------

ข้อ 2 หลักการนะครับ จำนวนเฉพาะคือจำนวนที่มีเลขแค่ 2 ตัวที่หารมันลงตัว คือ 1 กับตัวมันเอง เอาโปรแกรมนี้ไปดูนะครับ ผมเขียนเองมั่วๆหน่อยแต่ใช้งานได้ = = คำตอบข้อ 2 เลยละ เออลืมบอกใช้ c# นะ C มิเก่งพอ = = แต่น่าจะเทียบเคียงกันได้เพราะมันไม่่ต่างกันมาก
คนละแนวกับผมเลย ฮ่าๆ
------------------------------------------------------------

KnocKingMasterM
2nd September 2012, 15:18
#include<stdio.h>
int main()
{
int i,j,x,y,z,sum=0;
printf("Enter your numberX:");scanf("%d",&x);
for(i=19;i<=x;i++)
{
z=0;
for(j=1;j<=i;j++)
{
y=i%j;
if(y==0){z++;}

}
if(z==2){
printf("%d ",i);
sum+=i;
}
}
printf("\n");
printf("sum=%d",sum);
return 0;
}
ข้อ 1 ครับบบบบบบบบบบ

KnocKingMasterM
2nd September 2012, 15:22
ขอ้2 งง ดีครับ ฮิอิ

Capathia
2nd September 2012, 15:26
เขาคุยไรกันหรอ ผมงงไปหมดแล้ว ~_~

_Lucifer-
2nd September 2012, 15:35
ขอ้2 งง ดีครับ ฮิอิ

รู้วาจะให้หาผลคูณจำนวนเฉพาะครับ --* ที่มีเลข 10 หารได้

ChaninKung
2nd September 2012, 15:38
รู้ว่าคุยเรื่องภาษาCแต่ผมไม่มีพื้นฐานเรื่องนี้เลย*0*ตาลายอย่างเดียว

_Lucifer-
3rd September 2012, 08:31
ข้อ 2-3
เหมือจจะไม่ได้ครับทำใน Turbo c++
แล้วมึนเลขออกมาไม่ได้ --* ติดลบ